import type { CrossDeviceMethod } from './CrossDeviceConnect.types';
import type { CompleteData, EnterpriseFeatureParameter, ExternalLinkCallback, LegacyLanguageParameter, UserExitCallback } from './SdkParameters';
import type { CrossDevicePolicy, LegacyStepDefinition, Translations, UserDetails } from './Types';
import type { ErrorCallback } from './Error';
export type ThemeConfig = Record<string, any>;
export type Theme = {
    name: 'light' | 'dark';
    config?: ThemeConfig;
};
type CommonSdkParameters = {
    containerEl?: HTMLElement;
    containerId?: string;
    onError?: ErrorCallback;
    onComplete?: (data: CompleteData) => void;
    showExitButton?: boolean;
    onUserExit?: UserExitCallback;
    onExternalLink?: ExternalLinkCallback;
    enterpriseFeatures?: EnterpriseFeatureParameter;
    theme?: Theme;
    customUI?: ThemeConfig;
    translations?: Translations;
    language?: string | LegacyLanguageParameter;
    smsNumberCountryCode?: string;
    userDetails?: UserDetails;
    _crossDeviceLinkMethods?: CrossDeviceMethod[];
    crossDeviceClientIntroProductLogoSrc?: string;
    crossDevicePolicy?: CrossDevicePolicy;
    disableAnalytics?: boolean;
    disableAnalyticsCookies?: boolean;
};
export type StudioSdkParameters = {
    token: string;
    workflowRunId: string;
    disableWelcomeScreen?: boolean;
    disableCompleteScreen?: boolean;
    onBiometricTokenGenerated?: (customerUserHash: string, biometricToken: string) => void;
    onBiometricTokenRequested?: (customerUserHash: string) => Promise<string>;
} & CommonSdkParameters;
export type ClassicSdkParameters = {
    token: string;
    steps: LegacyStepDefinition[];
} & CommonSdkParameters;
export type CrossDeviceSdkParameters = CommonSdkParameters & {
    roomId?: string;
    crossDeviceValidationToken?: string;
};
export type SdkParameters = StudioSdkParameters | ClassicSdkParameters | CrossDeviceSdkParameters;
export {};
