import type { AuthsignalResponse, KeychainAccess, PushChallenge, PushCredential } from './types';
interface ConstructorArgs {
    tenantID: string;
    baseURL: string;
    enableLogging: boolean;
}
interface AddCredentialInput {
    token?: string;
    requireUserAuthentication?: boolean;
    keychainAccess?: KeychainAccess;
}
interface UpdateChallengeInput {
    challengeId: string;
    approved: boolean;
    verificationCode?: string | null;
}
export declare class AuthsignalPush {
    tenantID: string;
    baseURL: string;
    enableLogging: boolean;
    constructor({ tenantID, baseURL, enableLogging }: ConstructorArgs);
    getCredential(): Promise<AuthsignalResponse<PushCredential>>;
    addCredential({ token, requireUserAuthentication, keychainAccess, }?: AddCredentialInput): Promise<AuthsignalResponse<boolean>>;
    removeCredential(): Promise<AuthsignalResponse<boolean>>;
    getChallenge(): Promise<AuthsignalResponse<PushChallenge | undefined>>;
    updateChallenge({ challengeId, approved, verificationCode, }: UpdateChallengeInput): Promise<AuthsignalResponse<boolean>>;
    private ensureModuleIsInitialized;
}
export {};
//# sourceMappingURL=push.d.ts.map