import TAKAPI from './api.js';
/**
 * Store the TAK Client Certificate for a connection
 */
export declare const TAKAuth: import("@sinclair/typebox").TObject<{
    cert: import("@sinclair/typebox").TString;
    key: import("@sinclair/typebox").TString;
    passphrase: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    ca: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
    rejectUnauthorized: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
}>;
export declare class APIAuth {
    init(api: TAKAPI): Promise<void>;
    fetch(api: TAKAPI, url: URL, opts: any): Promise<any>;
}
export declare class APIAuthPassword extends APIAuth {
    username: string;
    password: string;
    jwt: string;
    constructor(username: string, password: string);
    init(api: TAKAPI): Promise<void>;
    fetch(api: TAKAPI, url: URL, opts: any): Promise<any>;
}
export declare class APIAuthToken extends APIAuth {
    jwt?: string;
    constructor(jwt: string);
    fetch(api: TAKAPI, url: URL, opts: any): Promise<any>;
}
export declare class APIAuthCertificate extends APIAuth {
    cert: string;
    key: string;
    constructor(cert: string, key: string);
    fetch(api: TAKAPI, url: URL, opts: any): Promise<any>;
}
