import { SessionOptions } from '@treasure-dev/tdk-core';

type WalletComponents = {
    walletId: string;
    authProvider: string;
    authCookie: string;
};
type LauncherOptions = {
    getAuthTokenOverride?: () => string | undefined;
    getWalletComponentsOverride?: () => WalletComponents | undefined;
    getPortOverride?: () => number;
};

declare function getTreasureLauncherAuthToken(): string | undefined;
declare function isUsingTreasureLauncher(): boolean;
declare function getTreasureLauncherWalletComponents(): WalletComponents | undefined;
declare function getTreasureLauncherPort(): number;

declare function startUserSessionViaLauncher({ sessionOptions, getPort, }: {
    sessionOptions: SessionOptions;
    getPort?: () => number;
}): Promise<void>;

export { type LauncherOptions, type WalletComponents, getTreasureLauncherAuthToken, getTreasureLauncherPort, getTreasureLauncherWalletComponents, isUsingTreasureLauncher, startUserSessionViaLauncher };
