import { AuthSig, CosmosWalletType } from '@lit-protocol/types';
/** ---------- Declaration ---------- */
declare global {
    interface Window {
        keplr?: any;
        leap?: any;
        solana?: any;
    }
}
/** ---------- Local Interfaces ---------- */
interface CosmosProvider {
    provider: any;
    account: string;
    chainId: string | number;
}
interface CosmosSignDoc {
    chain_id: string;
    account_number: string;
    sequence: string;
    fee: {
        gas: string;
        amount: [];
    };
    msgs: Array<{
        type: string;
        value: {
            signer: any;
            data: any;
        };
    }>;
    memo: string;
}
/** ---------- Exports ---------- */
/**
 *
 * Get cosmos provider details
 *
 * @property { string } chain
 */
export declare const connectCosmosProvider: ({ chain, walletType, }: {
    chain: string;
    walletType: CosmosWalletType;
}) => Promise<CosmosProvider>;
/**
 *
 * Check if the cosmos signature is in the local storage already,
 * If not, sign and save the authenticated message
 *
 * @property { string } chain
 * @returns { AuthSig }
 */
export declare const checkAndSignCosmosAuthMessage: ({ chain, walletType, }: {
    chain: string;
    walletType: CosmosWalletType;
}) => Promise<AuthSig>;
/**
 *
 * Save and sign the authenticated message
 * @param { CosmosProvider } connectedCosmosProvider
 *
 * @returns { void }
 */
export declare const signAndSaveAuthMessage: (connectedCosmosProvider: CosmosProvider) => Promise<void>;
/**
 *
 * Turn sorted signDoc object into uint8array
 *
 * @param { CosmosSignDoc } signDoc
 * @returns { Uint8Array } serialized string in uint8array
 */
export declare const serializeSignDoc: (signDoc: CosmosSignDoc) => Uint8Array;
export {};
