import { JSX as JSX_2 } from 'react/jsx-runtime';
import { ReactNode } from 'react';

declare interface CTAProps {
    label?: string;
    icon?: ReactNode;
    action?(subject: string, id: string, plainText: string, html: string, preset: string): void;
    hidden?: boolean;
}

export declare function EmailScribe(props: EmailScribeProps): JSX_2.Element;

declare interface EmailScribeConfigProps {
    apiUrl: string;
    basePath: string;
    imageUrlPrefix?: string;
    templatesToFetch: string[];
    preloadPreset?: string;
    nonce?: string;
}

export declare interface EmailScribeProps extends EmailScribeConfigProps, EmailScribeUIProps {
}

declare interface EmailScribeUIProps {
    ABTestMode?: 'None' | 'A' | 'B';
    iconComponent?: ReactNode;
    presetMode?: PresetMode;
    title?: string;
    ctaOne?: CTAProps;
    ctaTwo?: CTAProps;
    scribeId: string;
}

declare enum PresetMode {
    Default = 0,
    LocalOnly = 1,
    RemoteOnly = 2
}

export declare function useTheme(): "dark" | "light";

export { }


declare global {
    interface Window {
        emailScribeDataRetrievers: {
            [key: string]: EmailScribeDataRetriever;
        };
    }
}
