import React from 'react';
export type DocusealFormField = {
    name: string;
    title?: string;
    description?: string;
    type?: string;
    position?: number;
    required?: boolean;
    readonly?: boolean;
    validation?: {
        pattern?: string;
        message?: 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;
        currency?: "USD" | "EUR" | "GBP" | "CAD" | "AUD";
    };
};
export type DocusealFormLoadData = {
    sandbox: boolean;
    template: {
        id: number;
        name: string;
        shared_link: boolean;
    };
    submission: {
        id: number;
        name: string | null;
    } | null;
    submitter: {
        id: number;
        email: string;
        slug: string;
        name: string | null;
        phone: string | null;
        values: Record<string, unknown>;
        uuid: string;
        external_id: string | null;
        preferences: Record<string, unknown>;
    } | null;
    values: Record<string, unknown>;
    logo: {
        url: string;
        metadata: Record<string, unknown>;
    } | null;
    completed_submitter: {
        id: number;
        submission_id: number;
        email: string;
        name: string | null;
        completed_at: string;
    } | null;
    expired_submitter: {
        id: number;
        submission_id: number;
        declined_at: string | null;
        expire_at: string;
    } | null;
};
type DocusealFormSubmitterData = {
    id: number;
    submission_id: number;
    email: string;
    phone: string | null;
    name: string | null;
    ua: string;
    ip: string;
    sent_at: string | null;
    opened_at: string | null;
    completed_at: string | null;
    declined_at: string | null;
    created_at: string;
    updated_at: string;
    external_id: string | null;
    metadata: Record<string, unknown>;
    status: 'completed' | 'declined' | 'expired' | 'pending';
    decline_reason: string | null;
    role: string;
    preferences: Record<string, unknown>;
    values: Array<{
        field: string;
        value: unknown;
    }>;
    submission_url: string;
    template: {
        id: number;
        name: string;
        external_id: string | null;
        created_at: string;
        updated_at: string;
        folder_name: string | null;
    };
    submission: {
        id: number;
        audit_log_url: string | null;
        combined_document_url: string | null;
        status: 'completed' | 'declined' | 'expired' | 'pending';
        url: string;
        variables: Record<string, unknown>;
        created_at: string;
    };
};
export type DocusealFormCompleteData = DocusealFormSubmitterData;
export type DocusealFormDeclineData = DocusealFormSubmitterData;
export type DocusealFormProps = {
    src?: string;
    token?: string;
    host?: string;
    role?: string;
    submitter?: string;
    expand?: boolean;
    minimize?: boolean;
    orderAsOnPage?: boolean;
    preview?: boolean;
    dryRun?: boolean;
    email?: string;
    name?: string;
    applicationKey?: string;
    externalId?: string;
    backgroundColor?: string;
    logo?: string;
    language?: string;
    completedMessage?: {
        title?: string;
        body?: string;
    };
    completedRedirectUrl?: string;
    completedButton?: {
        title: string;
        url: string;
    };
    goToLast?: boolean;
    skipFields?: boolean;
    autoscrollFields?: boolean;
    withTitle?: boolean;
    withDecline?: boolean;
    withFieldNames?: boolean;
    withFieldPlaceholder?: boolean;
    sendCopyEmail?: boolean;
    withDownloadButton?: boolean;
    withSendCopyButton?: boolean;
    withCompleteButton?: boolean;
    onlyRequiredFields?: boolean;
    allowToResubmit?: boolean;
    allowTypedSignature?: boolean;
    signature?: string;
    rememberSignature?: boolean;
    reuseSignature?: boolean;
    values?: object;
    metadata?: object;
    i18n?: object;
    fields?: DocusealFormField[];
    readonlyFields?: string[];
    onComplete?: (data: DocusealFormCompleteData) => void;
    onInit?: () => void;
    onDecline?: (data: DocusealFormDeclineData) => void;
    onLoad?: (data: DocusealFormLoadData) => void;
    className?: string;
    customCss?: string;
    style?: React.CSSProperties;
};
declare const DocusealForm: ({ src, token, host, role, submitter, preview, dryRun, expand, minimize, orderAsOnPage, email, name, backgroundColor, sendCopyEmail, applicationKey, externalId, logo, language, completedRedirectUrl, completedButton, completedMessage, goToLast, skipFields, autoscrollFields, withTitle, withDecline, withFieldNames, withFieldPlaceholder, withDownloadButton, onlyRequiredFields, allowToResubmit, allowTypedSignature, signature, rememberSignature, reuseSignature, withSendCopyButton, withCompleteButton, values, metadata, i18n, fields, readonlyFields, onComplete, onInit, onDecline, onLoad, className, customCss, style }: DocusealFormProps) => JSX.Element;
export default DocusealForm;
