import type { Theme as CaptureTheme } from '../capture-api/theming/Theme';
import type { Navigation as CaptureNavigation } from '../capture-api';
import type { LegacyStepDefinition, LegacyStepType, CrossDevicePolicy, EnterpriseFeatures, LocaleDirection, Translations, UserDetails } from './Types';
import type { ErrorCallback } from './Error';
import type { CrossDeviceMethod } from './CrossDeviceConnect.types';
import type { EnterpriseFeatureCallback } from './Enterprise';
export declare const legacySteps: LegacyStepType[];
export declare const isLegacyStepType: (step: LegacyStepDefinition) => step is LegacyStepType;
export type CompleteData = Record<string, unknown>;
export declare enum UserAction {
    USER_EXIT = "user_exit",
    USER_CONSENT_DENIED = "user_consent_denied"
}
export type EnterpriseFeatureParameter = EnterpriseFeatures & EnterpriseFeatureCallback;
export type UserExitCallback = (action: UserAction) => void;
export type ExternalLinkCallback = (url: string) => void;
export type CommonSdkParameters = {
    containerEl?: HTMLElement;
    containerId?: string;
    onError?: ErrorCallback;
    onComplete?: (data: CompleteData) => void;
    showExitButton?: boolean;
    onUserExit?: UserExitCallback;
    onExternalLink?: ExternalLinkCallback;
    enterpriseFeatures?: EnterpriseFeatureParameter;
    language?: string | LegacyLanguageParameter;
    translations?: Translations;
    theme?: CaptureTheme & {
        name?: string;
    };
    navigation?: CaptureNavigation;
};
export type LegacyLanguageParameter = {
    locale?: string;
    phrases?: Record<string, string>;
    mobilePhrases?: Record<string, string>;
    direction?: LocaleDirection;
};
export type TokenParameters = {
    token: string;
    language?: string | LegacyLanguageParameter;
    /***
     * You can change the default country for the SMS number input by passing the
     * smsNumberCountryCode option when the SDK is initialized. The value should
     * be a string containing a 2-character ISO Country code. If empty, the SMS
     * number country code will default to GB.
     */
    smsNumberCountryCode?: string;
    userDetails?: UserDetails;
    _crossDeviceLinkMethods?: CrossDeviceMethod[];
    crossDeviceClientIntroProductLogoSrc?: string;
    crossDevicePolicy?: CrossDevicePolicy;
    disableAnalytics?: boolean;
    disableAnalyticsCookies?: boolean;
} & CommonSdkParameters;
export type StudioSdkParameters = {
    workflowRunId: string;
    disableWelcomeScreen?: boolean;
    disableCompleteScreen?: boolean;
    onBiometricTokenGenerated?: (customerUserHash: string, biometricToken: string) => void;
    onBiometricTokenRequested?: (customerUserHash: string) => Promise<string>;
} & TokenParameters;
export type ClassicSdkParameters = {
    steps: LegacyStepDefinition[];
} & TokenParameters;
export type CrossDeviceSdkParameters = CommonSdkParameters & {
    roomId?: string;
    crossDeviceValidationToken?: string;
};
export type SdkParameters = StudioSdkParameters | ClassicSdkParameters | CrossDeviceSdkParameters;
