import type { AllLayoutsMetadataResponse, CreateResponse, DeleteResponse, GetResponse, LayoutMetadataResponse, PortalRanges, ScriptsMetadataResponse, UpdateResponse } from "../client-types.js";
import type { Adapter, BaseRequest, ContainerUploadOptions, CreateOptions, DeleteOptions, FindOptions, GetOptions, LayoutMetadataOptions, ListOptions, UpdateOptions } from "./core.js";
import type { BaseFetchAdapterOptions, GetTokenArguments } from "./fetch-base-types.js";
export type ExecuteScriptOptions = BaseRequest & {
    script: string;
    scriptParam?: string;
};
export declare class BaseFetchAdapter implements Adapter {
    protected server: string;
    protected db: string;
    private refreshToken;
    baseUrl: URL;
    constructor(options: BaseFetchAdapterOptions & {
        refreshToken?: boolean;
    });
    protected getToken: (args?: GetTokenArguments) => Promise<string>;
    protected request: (params: {
        url: string;
        body?: object | FormData;
        query?: Record<string, string>;
        method?: string;
        retry?: boolean;
        portalRanges?: PortalRanges;
        timeout?: number;
        fetchOptions?: RequestInit;
    }) => Promise<unknown>;
    list: (opts: ListOptions) => Promise<GetResponse>;
    get: (opts: GetOptions) => Promise<GetResponse>;
    find: (opts: FindOptions) => Promise<GetResponse>;
    create: (opts: CreateOptions) => Promise<CreateResponse>;
    update: (opts: UpdateOptions) => Promise<UpdateResponse>;
    delete: (opts: DeleteOptions) => Promise<DeleteResponse>;
    layoutMetadata: (opts: LayoutMetadataOptions) => Promise<LayoutMetadataResponse>;
    /**
     * Execute a script within the database
     */
    executeScript: (opts: ExecuteScriptOptions) => Promise<{
        scriptResult?: string | undefined;
        scriptError?: string | undefined;
        "scriptResult.prerequest"?: string | undefined;
        "scriptError.prerequest"?: string | undefined;
        "scriptResult.presort"?: string | undefined;
        "scriptError.presort"?: string | undefined;
    }>;
    /**
     * Returns a list of available layouts on the database.
     */
    layouts: (opts?: Omit<BaseRequest, "layout">) => Promise<AllLayoutsMetadataResponse>;
    /**
     * Returns a list of available scripts on the database.
     */
    scripts: (opts?: Omit<BaseRequest, "layout">) => Promise<ScriptsMetadataResponse>;
    containerUpload: (opts: ContainerUploadOptions) => Promise<void>;
    /**
     * Set global fields for the current session
     */
    globals: (opts: Omit<BaseRequest, "layout"> & {
        globalFields: Record<string, string | number>;
    }) => Promise<Record<string, never>>;
}
//# sourceMappingURL=fetch-base.d.ts.map