import { ITemplateField, IEnvelopeField } from '@verdocs/js-sdk';
import { EventEmitter } from '../../../stencil-public-runtime';
export interface ISelectedFile {
    lastModified: number;
    size: number;
    type: string;
    name: string;
    data: string;
}
/**
 * Displays an attachment field.
 */
export declare class VerdocsFieldAttachment {
    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, 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;
    /**
     * Event fired when the field's settings are changed.
     */
    settingsChanged: EventEmitter<{
        fieldName: string;
        field: ITemplateField;
    }>;
    /**
     * Event fired when a file is attached by the signer.
     */
    attached: EventEmitter<ISelectedFile>;
    /**
     * Event fired when the field is deleted. Note that this is for the FIELD (e.g. in
     * Build) not for any attachments (during signing).
     */
    deleted: EventEmitter<{
        fieldName: string;
    }>;
    showingProperties?: boolean;
    dialogOpen?: boolean;
    selectedFile?: ISelectedFile | null;
    focused: boolean;
    focusField(): Promise<void>;
    showSettingsPanel(): Promise<void>;
    hideSettingsPanel(): Promise<void>;
    handleShow(): void;
    handleUploadNext: (e: any) => void;
    handleUploadRemove: (e: any) => void;
    render(): any;
}
