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