import { z } from 'zod';
import { ChatPersistence, ChatPosition } from '@voiceflow/voiceflow-types/build/cjs/version';

export declare const WidgetOverrides: z.ZodObject<{
    type: z.ZodOptional<z.ZodNativeEnum<{
        readonly CHAT: "chat";
        readonly VOICE: "voice";
    }>>;
    renderMode: z.ZodOptional<z.ZodNativeEnum<{
        readonly EMBED: "embed";
        readonly WIDGET: "widget";
        readonly POPOVER: "popover";
    }>>;
    header: z.ZodOptional<z.ZodObject<{
        hideImage: z.ZodOptional<z.ZodBoolean>;
        imageUrl: z.ZodOptional<z.ZodString>;
        title: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        hideImage?: boolean | undefined;
        imageUrl?: string | undefined;
        title?: string | undefined;
    }, {
        hideImage?: boolean | undefined;
        imageUrl?: string | undefined;
        title?: string | undefined;
    }>>;
    banner: z.ZodOptional<z.ZodObject<{
        hide: z.ZodOptional<z.ZodBoolean>;
        title: z.ZodOptional<z.ZodString>;
        description: z.ZodOptional<z.ZodString>;
        imageUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        hide?: boolean | undefined;
        title?: string | undefined;
        description?: string | undefined;
        imageUrl?: string | undefined;
    }, {
        hide?: boolean | undefined;
        title?: string | undefined;
        description?: string | undefined;
        imageUrl?: string | undefined;
    }>>;
    avatar: z.ZodOptional<z.ZodObject<{
        hide: z.ZodOptional<z.ZodBoolean>;
        imageUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        hide?: boolean | undefined;
        imageUrl?: string | undefined;
    }, {
        hide?: boolean | undefined;
        imageUrl?: string | undefined;
    }>>;
    inputPlaceholder: z.ZodOptional<z.ZodString>;
    enableVoiceInput: z.ZodOptional<z.ZodBoolean>;
    enableVoiceOutput: z.ZodOptional<z.ZodBoolean>;
    launcher: z.ZodOptional<z.ZodObject<{
        type: z.ZodOptional<z.ZodNativeEnum<{
            readonly ICON: "icon";
            readonly LABEL: "label";
            readonly BOTH: "both";
        }>>;
        label: z.ZodOptional<z.ZodString>;
        imageUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        type?: "label" | "icon" | "both" | undefined;
        label?: string | undefined;
        imageUrl?: string | undefined;
    }, {
        type?: "label" | "icon" | "both" | undefined;
        label?: string | undefined;
        imageUrl?: string | undefined;
    }>>;
    footer: z.ZodOptional<z.ZodObject<{
        hide: z.ZodOptional<z.ZodBoolean>;
        linkText: z.ZodOptional<z.ZodString>;
        linkUrl: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        hide?: boolean | undefined;
        linkText?: string | undefined;
        linkUrl?: string | undefined;
    }, {
        hide?: boolean | undefined;
        linkText?: string | undefined;
        linkUrl?: string | undefined;
    }>>;
    color: z.ZodOptional<z.ZodString>;
    palette: z.ZodOptional<z.ZodDefault<z.ZodObject<{
        50: z.ZodString;
        100: z.ZodString;
        200: z.ZodString;
        300: z.ZodString;
        400: z.ZodString;
        500: z.ZodString;
        600: z.ZodString;
        700: z.ZodString;
        800: z.ZodString;
        900: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        700: string;
        100: string;
        50: string;
        200: string;
        300: string;
        400: string;
        500: string;
        600: string;
        800: string;
        900: string;
    }, {
        700: string;
        100: string;
        50: string;
        200: string;
        300: string;
        400: string;
        500: string;
        600: string;
        800: string;
        900: string;
    }>>>;
    fontFamily: z.ZodOptional<z.ZodString>;
    side: z.ZodOptional<z.ZodNativeEnum<typeof ChatPosition>>;
    spacing: z.ZodOptional<z.ZodObject<{
        side: z.ZodOptional<z.ZodString>;
        bottom: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        side?: string | undefined;
        bottom?: string | undefined;
    }, {
        side?: string | undefined;
        bottom?: string | undefined;
    }>>;
    aiDisclaimer: z.ZodOptional<z.ZodObject<{
        hide: z.ZodOptional<z.ZodBoolean>;
        text: z.ZodOptional<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        hide?: boolean | undefined;
        text?: string | undefined;
    }, {
        hide?: boolean | undefined;
        text?: string | undefined;
    }>>;
    persistence: z.ZodOptional<z.ZodNativeEnum<typeof ChatPersistence>>;
    stylesheet: z.ZodOptional<z.ZodString>;
    extensions: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        match: z.ZodEffects<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>, (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean, (...args: unknown[]) => unknown>;
        type: z.ZodLiteral<import("./Extension.dto").ExtensionType.EFFECT>;
        name: z.ZodString;
        effect: z.ZodOptional<z.ZodEffects<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>, (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => void | Promise<void>, (...args: unknown[]) => unknown>>;
    }, "strip", z.ZodTypeAny, {
        match: (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean;
        type: import("./Extension.dto").ExtensionType.EFFECT;
        name: string;
        effect?: ((context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => void | Promise<void>) | undefined;
    }, {
        match: (...args: unknown[]) => unknown;
        type: import("./Extension.dto").ExtensionType.EFFECT;
        name: string;
        effect?: ((...args: unknown[]) => unknown) | undefined;
    }>, z.ZodObject<{
        match: z.ZodEffects<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>, (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean, (...args: unknown[]) => unknown>;
        type: z.ZodLiteral<import("./Extension.dto").ExtensionType.RESPONSE>;
        name: z.ZodString;
        render: z.ZodOptional<z.ZodEffects<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>, (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
            element: HTMLElement;
        }) => void | (() => void), (...args: unknown[]) => unknown>>;
    }, "strip", z.ZodTypeAny, {
        match: (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean;
        type: import("./Extension.dto").ExtensionType.RESPONSE;
        name: string;
        render?: ((context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
            element: HTMLElement;
        }) => void | (() => void)) | undefined;
    }, {
        match: (...args: unknown[]) => unknown;
        type: import("./Extension.dto").ExtensionType.RESPONSE;
        name: string;
        render?: ((...args: unknown[]) => unknown) | undefined;
    }>]>, "many">>;
}, "strip", z.ZodTypeAny, {
    type?: "chat" | "voice" | undefined;
    renderMode?: "embed" | "widget" | "popover" | undefined;
    header?: {
        hideImage?: boolean | undefined;
        imageUrl?: string | undefined;
        title?: string | undefined;
    } | undefined;
    banner?: {
        hide?: boolean | undefined;
        title?: string | undefined;
        description?: string | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    avatar?: {
        hide?: boolean | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    inputPlaceholder?: string | undefined;
    enableVoiceInput?: boolean | undefined;
    enableVoiceOutput?: boolean | undefined;
    launcher?: {
        type?: "label" | "icon" | "both" | undefined;
        label?: string | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    footer?: {
        hide?: boolean | undefined;
        linkText?: string | undefined;
        linkUrl?: string | undefined;
    } | undefined;
    color?: string | undefined;
    palette?: {
        700: string;
        100: string;
        50: string;
        200: string;
        300: string;
        400: string;
        500: string;
        600: string;
        800: string;
        900: string;
    } | undefined;
    fontFamily?: string | undefined;
    side?: ChatPosition | undefined;
    spacing?: {
        side?: string | undefined;
        bottom?: string | undefined;
    } | undefined;
    aiDisclaimer?: {
        hide?: boolean | undefined;
        text?: string | undefined;
    } | undefined;
    persistence?: ChatPersistence | undefined;
    stylesheet?: string | undefined;
    extensions?: ({
        match: (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean;
        type: import("./Extension.dto").ExtensionType.EFFECT;
        name: string;
        effect?: ((context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => void | Promise<void>) | undefined;
    } | {
        match: (context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
        }) => boolean;
        type: import("./Extension.dto").ExtensionType.RESPONSE;
        name: string;
        render?: ((context: {
            trace: import('@voiceflow/base-types/build/cjs/trace').AnyTrace;
            element: HTMLElement;
        }) => void | (() => void)) | undefined;
    })[] | undefined;
}, {
    type?: "chat" | "voice" | undefined;
    renderMode?: "embed" | "widget" | "popover" | undefined;
    header?: {
        hideImage?: boolean | undefined;
        imageUrl?: string | undefined;
        title?: string | undefined;
    } | undefined;
    banner?: {
        hide?: boolean | undefined;
        title?: string | undefined;
        description?: string | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    avatar?: {
        hide?: boolean | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    inputPlaceholder?: string | undefined;
    enableVoiceInput?: boolean | undefined;
    enableVoiceOutput?: boolean | undefined;
    launcher?: {
        type?: "label" | "icon" | "both" | undefined;
        label?: string | undefined;
        imageUrl?: string | undefined;
    } | undefined;
    footer?: {
        hide?: boolean | undefined;
        linkText?: string | undefined;
        linkUrl?: string | undefined;
    } | undefined;
    color?: string | undefined;
    palette?: {
        700: string;
        100: string;
        50: string;
        200: string;
        300: string;
        400: string;
        500: string;
        600: string;
        800: string;
        900: string;
    } | undefined;
    fontFamily?: string | undefined;
    side?: ChatPosition | undefined;
    spacing?: {
        side?: string | undefined;
        bottom?: string | undefined;
    } | undefined;
    aiDisclaimer?: {
        hide?: boolean | undefined;
        text?: string | undefined;
    } | undefined;
    persistence?: ChatPersistence | undefined;
    stylesheet?: string | undefined;
    extensions?: ({
        match: (...args: unknown[]) => unknown;
        type: import("./Extension.dto").ExtensionType.EFFECT;
        name: string;
        effect?: ((...args: unknown[]) => unknown) | undefined;
    } | {
        match: (...args: unknown[]) => unknown;
        type: import("./Extension.dto").ExtensionType.RESPONSE;
        name: string;
        render?: ((...args: unknown[]) => unknown) | undefined;
    })[] | undefined;
}>;
export type WidgetOverrides = z.infer<typeof WidgetOverrides>;
//# sourceMappingURL=WidgetOverrides.dto.d.ts.map