import type { FieldData, GenericPortalData } from './Layout';
import Layout from './Layout';
export declare class FileMakerError extends Error {
    readonly code: string;
    constructor(code: string, message: string);
}
type ContainerDownload = {
    contentType?: string | null;
    buffer: Blob;
};
export default class Client {
    private readonly uri;
    private readonly database;
    private readonly username;
    private readonly password;
    private token;
    private lastCall;
    constructor(uri: string, database: string, username: string, password: string);
    layout<T extends FieldData = FieldData, U extends GenericPortalData = GenericPortalData>(layout: string): Layout<T, U>;
    request<T>(path: string, request?: RequestInit, retryOnInvalidToken?: boolean): Promise<T>;
    requestContainer(containerUrl: string, request?: RequestInit): Promise<ContainerDownload>;
    clearToken(): Promise<void>;
    private getToken;
    private static injectHeaders;
}
export {};
