import { KeyguardCommand } from './KeyguardCommand';
import { CreateRequest, DeriveAddressRequest, ImportRequest, RemoveKeyRequest, ResetPasswordRequest, SignTransactionRequest, SignMultisigTransactionRequest, SignStakingRequest, SignMessageRequest, SimpleRequest, ListLegacyResult, ListResult, SimpleResult, ExportRequest, DerivedAddress, ObjectType, ResultByCommand, SignBtcTransactionRequest, DeriveBtcXPubRequest, DerivePolygonAddressRequest, SignPolygonTransactionRequest, SignSwapRequest, SignSwapTransactionsRequest, SignSwapTransactionsResult, ConnectRequest } from './PublicRequest';
import { SignMessagePrefix } from './SignMessagePrefix';
export declare class KeyguardClient {
    private static get DEFAULT_ENDPOINT();
    private readonly _endpoint;
    private _redirectClient;
    private _observable;
    private _redirectBehavior;
    private _iframeBehavior;
    constructor(endpoint?: string, returnURL?: string, localState?: ObjectType | null, preserveRequests?: boolean, handleHistoryBack?: boolean);
    init(): Promise<void>;
    on<T extends KeyguardCommand>(command: T, resolve: (result: ResultByCommand<T>, state?: ObjectType | null) => any, reject: (error: Error, state?: ObjectType | null) => any): void;
    create(request: CreateRequest): void;
    remove(request: RemoveKeyRequest): void;
    import(request: ImportRequest): void;
    export(request: ExportRequest): void;
    changePassword(request: SimpleRequest): void;
    resetPassword(request: ResetPasswordRequest): void;
    signTransaction(request: SignTransactionRequest): void;
    signMultisigTransaction(request: SignMultisigTransactionRequest): void;
    signStaking(request: SignStakingRequest): void;
    deriveAddress(request: DeriveAddressRequest): void;
    signMessage(request: SignMessageRequest): void;
    signBtcTransaction(request: SignBtcTransactionRequest): void;
    deriveBtcXPub(request: DeriveBtcXPubRequest): void;
    derivePolygonAddress(request: DerivePolygonAddressRequest): void;
    signPolygonTransaction(request: SignPolygonTransactionRequest): void;
    signSwap(request: SignSwapRequest): void;
    connectAccount(request: ConnectRequest): void;
    list(): Promise<ListResult>;
    hasKeys(): Promise<SimpleResult>;
    deriveAddresses(keyId: string, paths: string[], tmpCookieEncryptionKey?: Uint8Array): Promise<DerivedAddress[]>;
    releaseKey(keyId: string, shouldBeRemoved?: boolean): Promise<SimpleResult>;
    listLegacyAccounts(): Promise<ListLegacyResult>;
    hasLegacyAccounts(): Promise<SimpleResult>;
    migrateAccountsToKeys(): Promise<SimpleResult>;
    signSwapTransactions(request: SignSwapTransactionsRequest): Promise<SignSwapTransactionsResult>;
    private _redirectRequest;
    private _iframeRequest;
    private _onReject;
    private _onResolve;
    private _parseState;
}
/**
 * @deprecated - Import SignMessagePrefix instead.
 */
export declare const MSG_PREFIX = SignMessagePrefix.SIGNED_MESSAGE;
