import type { Theme } from '../theming/Theme';
import type { Navigation } from '../SdkParameters';
export declare enum Platform {
    WEB = "web",
    IOS = "ios",
    ANDROID = "android"
}
export type Translations = Record<string, string>;
export type Configuration = Record<string, any>;
export type ClientConfiguration = {
    token: string;
};
export type Module = {
    type: 'hosted';
    module: string;
    version: string;
};
export type ContextConfiguration = {
    supportsBack?: boolean;
    supportsExit?: boolean;
    supportsExternalLink?: boolean;
    enableCallbacks?: boolean;
    translations?: Translations;
    theme?: Theme;
    navigation?: Navigation;
    language: string;
};
export type Os = {
    name: string;
    version: string;
};
export type Permission = {
    alwaysRequestPermissions?: boolean;
};
export type Context = {
    platform: Platform;
    version: string;
    os?: Os;
    permission?: Permission;
    configuration: ContextConfiguration;
    integration?: {
        name: string;
        version: string;
    };
};
export type StudioTask = {
    taskDefinitionId: string;
    taskId: string;
};
export type StudioConfiguration = Record<string, unknown>;
export type Studio = {
    workflowRunId: string;
    task: StudioTask;
    configuration: StudioConfiguration;
};
export type ClassicBridgeBootstrap = {
    bootstrap: {
        configuration: Configuration;
        module: Module;
        clientConfiguration: ClientConfiguration;
    };
    context: Context;
    previousState?: unknown;
};
export type StudioBridgeBootstrap = {
    bootstrap: {
        studio: Studio;
        clientConfiguration: ClientConfiguration;
    };
    context: Context;
    previousState?: unknown;
};
export type CaptureSDKExternalLinkResponse = {
    url: string;
    target?: LinkTarget;
    fullscreen?: boolean;
};
export declare enum LinkTarget {
    Browser = "browser",
    Overlay = "overlay"
}
export type Input = Record<string, unknown>;
export type BridgeStart = (input: Input) => void;
