import { type LinkedAccountInfo, Web3AuthError } from "../base";
import { makeAccountLinkingRequest, makeAccountUnlinkingRequest } from "./index";
import type { BaseLinkedAccountInfo, LinkAccountParams, LinkAccountResult, UnlinkAccountResult } from "./interfaces";
export { makeAccountLinkingRequest, makeAccountUnlinkingRequest };
export type { CITADEL_NETWORK, CitadelLinkAccountPayload, LinkAccountParams, LinkAccountResult, BaseLinkedAccountInfo as LinkedAccountInfo, UnlinkAccountPayload, UnlinkAccountResult, } from "./interfaces";
export interface IUseLinkAccount {
    loading: boolean;
    error: Web3AuthError | null;
    linkedAccounts: BaseLinkedAccountInfo[];
    linkAccount(params?: LinkAccountParams): Promise<LinkAccountResult | void>;
    unlinkAccount(address: string): Promise<UnlinkAccountResult | void>;
}
export interface IUseSwitchAccount {
    loading: boolean;
    error: Web3AuthError | null;
    switchAccount(account: LinkedAccountInfo): Promise<void>;
}
export declare const useLinkAccount: () => IUseLinkAccount;
export declare const useSwitchAccount: () => IUseSwitchAccount;
