import { ReactNode } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';

type ScreenshotType = "full-screenshot" | "selected-screenshot";
type ScreenshotBlobs = Array<{
    blob: Blob;
    type: ScreenshotType;
}>;
interface FormDataProps {
    message: string;
    screenshotBlobs: ScreenshotBlobs;
}
type WidgetPlacement = "left-center" | "left-bottom" | "right-center" | "right-bottom" | "bottom-left" | "bottom-right";
type FormSubmitHandler = (data: FormDataProps) => Promise<boolean>;
interface WidgetCustomizeProps {
    form?: {
        className?: string;
        errorMessage?: string;
        successMessage?: string;
        submitButton?: {
            label?: string;
            className?: string;
        };
        cancelButton?: {
            label?: string;
            className?: string;
        };
        messageInput?: {
            placeholder?: string;
            className?: string;
        };
    };
    island?: {
        placement?: WidgetPlacement;
        className?: string;
        label?: string;
        switchButton?: {
            className?: string;
            thumb?: {
                className?: string;
            };
        };
    };
}
interface BaseWidgetProviderProps {
    customize?: WidgetCustomizeProps;
    hideIsland?: boolean;
    children: ReactNode;
}
interface LocalWidgetProviderProps extends BaseWidgetProviderProps {
    mode: "local";
    siteId?: never;
    onFormSubmit: FormSubmitHandler;
}
interface RemoteWidgetProviderProps extends BaseWidgetProviderProps {
    siteId: string;
    mode?: "remote";
    onFormSubmit?: never;
}
type WidgetProviderProps = LocalWidgetProviderProps | RemoteWidgetProviderProps;

declare const WidgetProvider: ({ children, ...props }: WidgetProviderProps) => react_jsx_runtime.JSX.Element;

declare const useReactRoast: () => {
    isWidgetActive: boolean;
    toggleWidget: () => void;
    avoidElementClassName: string;
    setIslandVisiblity: (visible: boolean) => void;
};

export { type FormDataProps, type WidgetProviderProps, WidgetProvider as default, useReactRoast };
