import React from 'react';
export type DocusealBuilderField = {
    name: string;
    type?: string;
    role?: string;
    title?: string;
    description?: string;
    required?: boolean;
    readonly?: boolean;
    default_value?: string;
    width?: number;
    height?: number;
    options?: string[];
    preferences?: {
        font_size?: number;
        font_type?: "bold" | "italic" | "bold_italic";
        mask?: boolean | number;
        font?: "Times" | "Helvetica" | "Courier";
        color?: "black" | "white" | "blue";
        align?: "left" | "center" | "right";
        valign?: "top" | "center" | "bottom";
        format?: string;
        price?: number;
        with_signature_id?: boolean;
        currency?: "USD" | "EUR" | "GBP" | "CAD" | "AUD";
    };
    validation?: {
        pattern?: string;
        message?: string;
        min?: number | string;
        max?: number | string;
        step?: number;
    };
};
export type DocusealBuilderSubmitter = {
    email?: string;
    role?: string;
    name?: string;
    phone?: string;
};
export type DocusealBuilderSendData = {
    id: number;
    created_at: string;
    archived_at: string | null;
    template_submitters: Array<{
        name: string;
        uuid: string;
        is_requester?: boolean;
        linked_to_uuid?: string | null;
        order?: number;
        invite_via_field_uuid?: string | null;
        optional_invite_by_uuid?: string | null;
        invite_by_uuid?: string | null;
        email?: string;
    }>;
    template: {
        id: number;
        name: string;
        external_id: string | null;
        created_at: string;
    };
    submitters: Array<{
        id: number;
        uuid: string;
        email: string;
        completed_at: string | null;
        opened_at: string | null;
        sent_at: string | null;
        status_event_at: string;
        status: string;
    }>;
};
type DocusealBuilderTemplateData = {
    id: number;
    author_id: number;
    folder_id: number | null;
    external_id: string | null;
    name: string;
    slug: string;
    source: string | null;
    archived_at: string | null;
    created_at: string;
    updated_at: string;
    shared_link: boolean;
    preferences: Record<string, unknown> | null;
    variables_schema: Record<string, unknown> | null;
    schema: Array<{
        attachment_uuid: string;
        name: string;
        google_drive_file_id?: string;
        dynamic?: boolean;
        conditions?: Array<{
            field_uuid: string;
            value: string;
            action: string;
            operation: string;
        }>;
    }>;
    fields: Array<{
        uuid: string;
        submitter_uuid: string;
        name: string;
        type: string;
        required: boolean;
        readonly?: boolean;
        default_value?: string | string[] | null;
        title?: string;
        description?: string;
        prefillable?: boolean;
        preferences?: Record<string, unknown>;
        options?: Array<{
            value: string;
            uuid: string;
        }>;
        validation?: {
            message?: string;
            pattern?: string;
            min?: number;
            max?: number;
            step?: number;
        };
        conditions?: Array<{
            field_uuid: string;
            value: string;
            action: string;
            operation: string;
        }>;
        areas?: Array<{
            uuid: string;
            x: number;
            y: number;
            w: number;
            h: number;
            cell_w?: number;
            attachment_uuid: string;
            option_uuid?: string;
            page: number;
        }>;
    }>;
    submitters: Array<{
        name: string;
        uuid: string;
        is_requester?: boolean;
        linked_to_uuid?: string | null;
        order?: number;
        invite_via_field_uuid?: string | null;
        optional_invite_by_uuid?: string | null;
        invite_by_uuid?: string | null;
        email?: string;
    }>;
};
export type DocusealBuilderLoadData = DocusealBuilderTemplateData;
export type DocusealBuilderUploadData = DocusealBuilderTemplateData;
export type DocusealBuilderSaveData = DocusealBuilderTemplateData;
export type DocusealBuilderChangeData = DocusealBuilderTemplateData;
export type DocusealBuilderProps = {
    token: string;
    host?: string;
    withRecipientsButton?: boolean;
    withSendButton?: boolean;
    withTitle?: boolean;
    withDocumentsList?: boolean;
    withDynamicDocuments?: boolean;
    withFieldsList?: boolean;
    withFieldsDetection?: boolean;
    withFieldPlaceholder?: boolean;
    withPrefillable?: boolean;
    withCustomFieldsTab?: boolean;
    onlyDefinedFields?: boolean;
    preview?: boolean;
    previewMode?: boolean;
    inputMode?: boolean;
    language?: string;
    autosave?: boolean;
    roles?: string[];
    fieldTypes?: string[];
    drawFieldType?: string;
    fields?: DocusealBuilderField[];
    submitters?: DocusealBuilderSubmitter[];
    requiredFields?: DocusealBuilderField[];
    dateFormats?: string[];
    i18n?: object;
    withSignYourselfButton?: boolean;
    withUploadButton?: boolean;
    withSignatureId?: boolean;
    withRevisions?: boolean;
    withAddPageButton?: boolean;
    onLoad?: (data: DocusealBuilderLoadData) => void;
    onUpload?: (data: DocusealBuilderUploadData) => void;
    onSend?: (data: DocusealBuilderSendData) => void;
    onSave?: (data: DocusealBuilderSaveData) => void;
    onChange?: (data: DocusealBuilderChangeData) => void;
    customButton?: {
        title: string;
        url: string;
    };
    emailMessage?: {
        subject: string;
        body: string;
    };
    backgroundColor?: string;
    saveButtonText?: string;
    sendButtonText?: string;
    className?: string;
    customCss?: string;
    style?: React.CSSProperties;
};
declare const DocusealBuilder: ({ token, host, language, preview, previewMode, inputMode, autosave, withRecipientsButton, withDocumentsList, withDynamicDocuments, withFieldsList, withFieldsDetection, withFieldPlaceholder, withPrefillable, withCustomFieldsTab, withSendButton, withTitle, onlyDefinedFields, withSignYourselfButton, withUploadButton, withAddPageButton, withSignatureId, withRevisions, roles, fields, submitters, requiredFields, dateFormats, i18n, fieldTypes, drawFieldType, customButton, emailMessage, backgroundColor, onLoad, onUpload, onSend, onSave, onChange, className, sendButtonText, saveButtonText, customCss, style }: DocusealBuilderProps) => JSX.Element;
export default DocusealBuilder;
