import { IncomingMessage } from 'http';
import { SearchQuery } from './search-query';
export declare const DEFAULT_API_URL = "https://doc.logi.one/api/v2";
export declare class LogiONEDocumentClient {
    private token;
    private readonly saveTokenHandler;
    private readonly apiUrl;
    private accessToken?;
    private refreshAccessTokenPromise;
    private isRefreshingToken;
    constructor(token: string, saveTokenHandler: (refreshToken: string) => Promise<void> | void, apiUrl?: string);
    search<T>(resource: string, query: SearchQuery): Promise<T[]>;
    get<T>(resource: string): Promise<T>;
    post<T>(resource: string, data: unknown): Promise<T>;
    put<T>(resource: string, data: unknown): Promise<T>;
    delete<T>(resource: string): Promise<T>;
    postStream(resource: string, stream: NodeJS.ReadableStream): Promise<IncomingMessage>;
    putStream(resource: string, stream: NodeJS.ReadableStream): Promise<IncomingMessage>;
    getStream(resource: string): Promise<NodeJS.ReadableStream>;
    searchQueryToString(query: SearchQuery): string;
    private run;
    private getUrl;
    private refreshAccessToken;
}
