import { ResizeEvent } from '@interactjs/actions/resize/plugin';
import { ITemplateField, IEnvelopeField } from '@verdocs/js-sdk';
import { EventEmitter } from '../../../stencil-public-runtime';
/**
 * Displays a signature field. If a signature already exists, it will be displayed and the field
 * will be disabled. Otherwise, a placeholder button will be shown. Clicking the button will
 * show a dialog to adopt a signature.
 *
 * NOTE: When signature fields are completed they will be filled with a signature "stamp".
 * This requires operation against a live, valid envelope. If you are testing this component
 * in Storybook, it will not be visible here.
 */
export declare class VerdocsFieldSignature {
    el: HTMLElement;
    /**
     * Fields may be attached to templates or envelopes, but only template fields may be edited.
     */
    source: 'template' | 'envelope';
    /**
     * The source template or envelope ID the field is found in.
     */
    sourceid: string;
    /**
     * The name of the field to display.
     */
    fieldname: string;
    /**
     * Override the field's settings. This is intended to be used during signing when fields are being
     * mutated.
     */
    field: IEnvelopeField | null | undefined;
    /**
     * If set, the signature creation dialog will be initialized with this text.
     */
    name?: string;
    /**
     * If set, overrides the field's settings object. Primarily used to support "preview" modes where all fields are disabled.
     */
    disabled?: boolean;
    /**
     * If set, a settings icon will be displayed on hover. The settings shown allow the field's recipient and other settings to be
     * changed, so it should typically only be enabled in the Builder.
     */
    editable?: boolean;
    /**
     * If set, the field may be dragged to a new location. This should only be enabled in the Builder, or for self-placed fields.
     */
    moveable?: boolean;
    /**
     * If set, the field is considered "done" and is drawn in a display-final-value state.
     */
    done?: boolean;
    /**
     * If set, the field will be be scaled horizontally by this factor.
     */
    xscale?: number;
    /**
     * If set, the field will be be scaled vertically by this factor.
     */
    yscale?: number;
    /**
     * The page the field is on
     */
    pagenumber?: number;
    /**
     * If set, provides the ID of an already-adopted signature. If present, clicking the field (when empty)
     * will immediately use this signature instead of showing the adoption dialog.
     */
    signatureid?: string;
    /**
     * Event emitted when the field has changed.
     */
    fieldChange: EventEmitter<string>;
    /**
     * Event fired on every character entered into / deleted from the field.
     */
    settingsPress: EventEmitter;
    /**
     * Event fired when the field's settings are changed.
     */
    settingsChanged: EventEmitter<{
        fieldName: string;
        field: ITemplateField;
    }>;
    /**
     * Event fired when the field is deleted.
     */
    deleted: EventEmitter<{
        fieldName: string;
    }>;
    showingProperties?: boolean;
    focused: boolean;
    suppressOverlay: boolean;
    handleBlur(): void;
    adopt: EventEmitter;
    focusField(): Promise<void>;
    tempSignature: string;
    componentDidRender(): void;
    onBlur(): void;
    handleResizeStart(e: ResizeEvent): void;
    handleResize(e: any): void;
    handleResizeEnd(e: any): Promise<void>;
    showSettingsPanel(): Promise<void>;
    hideSettingsPanel(): Promise<void>;
    render(): any;
}
