import { StdSignature } from '@cosmjs/amino';
import { CosmosWallet } from '@nabla-studio/wallet-registry';
import { SignClientTypes } from '@walletconnect/types';
export type Logo = {
    png?: string;
    svg?: string;
} | {
    [key: string]: string;
};
export interface WalletLogo {
    dark?: Logo;
    light?: Logo;
}
export interface DownloadInfo {
    browser?: string;
    device?: string;
    icon?: string;
    link: string;
}
export interface WalletEvents {
    keystorechange: string;
}
export interface WalletOptions extends CosmosWallet {
    /**
     * Window extension key
     */
    windowKey?: string | string[];
    events?: WalletEvents;
}
export interface SignOptions {
    readonly preferNoSetFee?: boolean;
    readonly preferNoSetMemo?: boolean;
    readonly disableBalanceCheck?: boolean;
}
export declare const WcProviderEventType: {
    chainChanged: (chainId: string) => void;
    accountsChanged: (accounts: string[]) => void;
};
export declare const WcEventTypes: {
    readonly display_uri: (uri: string) => void;
    readonly session_ping: (payload: SignClientTypes.EventArguments["session_ping"]) => void;
    readonly session_event: (payload: SignClientTypes.EventArguments["session_event"]) => void;
    readonly session_update: (payload: SignClientTypes.EventArguments["session_update"]) => void;
    readonly session_delete: (payload: SignClientTypes.EventArguments["session_delete"]) => void;
    readonly session_proposal: (payload: SignClientTypes.EventArguments["session_proposal"]) => void;
    readonly session_extend: (payload: SignClientTypes.EventArguments["session_extend"]) => void;
    readonly session_expire: (payload: SignClientTypes.EventArguments["session_expire"]) => void;
    readonly session_request: (payload: SignClientTypes.EventArguments["session_request"]) => void;
    readonly session_request_sent: (payload: SignClientTypes.EventArguments["session_request_sent"]) => void;
    readonly proposal_expire: (payload: SignClientTypes.EventArguments["proposal_expire"]) => void;
};
export declare const ExtensionWalletEventTypes: {
    readonly keystorechange: () => void;
};
export type WalletEventTypes = typeof ExtensionWalletEventTypes & typeof WcEventTypes & typeof WcProviderEventType;
export type WalletEventNames = keyof WalletEventTypes;
export interface WalletConnectAccountData {
    address: string;
    algo: string;
    pubkey: string;
}
export interface WalletConnectSessionKey {
    name: string;
    algo: string;
    pubKey: string;
    address: string | null;
    bech32Address: string;
    isNanoLedger: boolean | null;
    isKeystone: boolean | null;
}
export interface WalletConnectDirectSignDoc {
    chainId: string;
    accountNumber: string;
    authInfoBytes: string;
    bodyBytes: string;
}
export interface WalletConnectDirectSignDoc {
    chainId: string;
    accountNumber: string;
    authInfoBytes: string;
    bodyBytes: string;
}
export interface WalletConnectSignDirectRequest {
    signerAddress: string;
    signDoc: WalletConnectDirectSignDoc;
}
export interface WalletConnectSignDirectResponse {
    signature: StdSignature;
    signed: WalletConnectDirectSignDoc;
}
