export interface ApiClientConfig {
    baseUrl: string;
    apiKey?: string;
    basicUser?: string;
    basicPassword?: string;
    timeout?: number;
}
export declare class ApiError extends Error {
    readonly status?: number | undefined;
    readonly response?: unknown | undefined;
    constructor(message: string, status?: number | undefined, response?: unknown | undefined);
}
/**
 * HTTP-клиент для SimpleOne REST API
 */
export declare class SimpleOneClient {
    private client;
    private baseUrl;
    constructor(config: ApiClientConfig);
    /**
     * Построение URL для ресурса
     */
    private buildResourceUrl;
    /**
     * Формирование query строки с правильным кодированием для SimpleOne
     */
    private buildQueryString;
    /**
     * GET запрос с прямым формированием URL
     */
    get<T>(endpoint: string, params?: Record<string, string>): Promise<T>;
    /**
     * POST запрос
     */
    post<T>(endpoint: string, data: unknown): Promise<T>;
    /**
     * PATCH запрос (частичное обновление)
     */
    patch<T>(endpoint: string, data: unknown): Promise<T>;
    /**
     * PUT запрос (полное обновление)
     */
    put<T>(endpoint: string, data: unknown): Promise<T>;
    /**
     * DELETE запрос
     */
    delete<T>(endpoint: string): Promise<T>;
    /**
     * Чтение ресурса (список или по ID)
     */
    readResource<T>(tableName: string, id?: string, params?: {
        query?: string;
        limit?: number;
        page?: number;
        no_count?: boolean;
        display_value?: string;
        exclude_reference_link?: boolean;
        fields?: string;
        view?: string;
    }): Promise<T | T[]>;
    /**
     * Создание ресурса
     */
    createResource<T>(tableName: string, data: unknown, params?: {
        display_value?: string;
        exclude_reference_link?: boolean;
        fields?: string;
        view?: string;
    }): Promise<T>;
    /**
     * Обновление ресурса (частичное, PATCH)
     */
    updateResource<T>(tableName: string, id: string, data: unknown, params?: {
        display_value?: string;
        exclude_reference_link?: boolean;
        fields?: string;
        view?: string;
    }): Promise<T>;
    /**
     * Обновление ресурса (полное, PUT)
     */
    putResource<T>(tableName: string, id: string, data: unknown, params?: {
        display_value?: string;
        exclude_reference_link?: boolean;
        fields?: string;
        view?: string;
    }): Promise<T>;
    /**
     * Удаление ресурса
     */
    deleteResource(tableName: string, id: string): Promise<void>;
}
//# sourceMappingURL=client.d.ts.map