import * as t from '@sylo/io-ts';
import { UniversalSdkEvent, Xumm } from 'xumm';
import { XummPkceEvent } from 'xumm-oauth2-pkce';
import { ILoginAdapter } from '../interfaces';
/**
 * TODO: see if we can extract the keys from the relevant Xaman interfaces rather than maintaining
 * a static definition here
 */
export declare const UniversalSdkEventKey: t.UnionC<[t.LiteralC<"logout">, t.LiteralC<"ready">, t.LiteralC<"retrieving">]>;
export type UniversalSdkEventKey = t.TypeOf<typeof UniversalSdkEventKey>;
export declare const XummPkceEventKey: t.UnionC<[t.LiteralC<"retrieved">, t.LiteralC<"error">, t.LiteralC<"success">, t.LiteralC<"loggedout">]>;
export type XummPkceEventKey = t.TypeOf<typeof XummPkceEventKey>;
type XamanEvents = {
    universalSdkEvents?: Partial<UniversalSdkEvent>;
    xummPkceEvents?: Partial<XummPkceEvent>;
};
export interface IXamanLoginAdapter extends ILoginAdapter {
    logout: () => Promise<void>;
}
export declare class FvXaman extends Xumm {
    constructor(apiKey: string);
    logout(): Promise<void>;
}
export declare function useXamanClient(apiKey: string, events?: XamanEvents): {
    xamanClient: FvXaman;
};
export {};
