import { AnnotationBase } from "./AnnotationTypes";
export declare type SetMultiplePropertiesFn<Val = any> = (pageIndex: number, originalNode: AnnotationBase, descriptors: PropertyDescriptor[], values: Val[]) => Promise<any>;
export type AnnotationsMsg = {
    type: 'reset';
};
export type AnnotationsModel = {
    layoutMode: LayoutMode;
    expandedPageIndex: number;
    expandedAnnotationIds: any;
    selectedAnnotationId: string;
    data: {
        pageIndex: number;
        annotations: AnnotationBase[];
    }[] | null;
    version?: number;
};
/**
 * Layout mode.
 * */
export declare enum LayoutMode {
    /**
     * Viewer (default)
     * */
    Viewer = 0,
    /**
     * Annotation editor.
     * */
    AnnotationEditor = 1,
    /**
     * Form editor.
     * */
    FormEditor = 2
}
/**
 * Toolbar editing mode. Used for annotations and form editors.
 */
export declare enum EditMode {
    /**
     *  No tool selected. Default mode.
     */
    None = 0,
    Text = 1,
    /**
     * FreeText annotation tool.
     */
    FreeText = 2,
    /**
     * Ink annotation tool.
     */
    Ink = 3,
    /**
     * Square annotation tool.
     */
    Square = 4,
    /**
     * Erase annotation tool.
     */
    Erase = 5,
    /**
     * Line annotation tool.
     */
    Line = 6,
    Circle = 7,
    Polyline = 8,
    /**
     * Polygon annotation tool.
     **/
    Polygon = 9,
    /**
     * FileAttachment annotation tool.
     **/
    FileAttachment = 10,
    /**
     * Sound annotation tool.
     **/
    Sound = 11,
    /**
     * Highlight annotation tool.
     **/
    Highlight = 12,
    /**
     * Underline annotation tool.
     **/
    Underline = 13,
    /**
     * Squiggly annotation tool.
     **/
    Squiggly = 14,
    /**
     * StrikeOut annotation tool.
     **/
    StrikeOut = 15,
    /**
     * Stamp annotation tool. Reserved.
     **/
    Stamp = 16,
    /**
     * Redact annotation tool.
     **/
    Redact = 17,
    /**
     * Select annotation/field tool.
     **/
    Select = 18,
    /**
     * Text field tool.
     * */
    TextFieldWidget = 19,
    /**
     * Comb text field tool.
     **/
    CombTextFieldWidget = 20,
    /**
     * Text area tool.
     **/
    TextAreaWidget = 21,
    /**
     * Password field tool.
     * */
    PasswordFieldWidget = 22,
    /**
     * CheckBox tool.
     * */
    CheckBoxButtonWidget = 23,
    /**
     * Radio button tool.
     * */
    RadioButtonWidget = 24,
    /**
     * Push button tool.
     **/
    PushButtonWidget = 25,
    /**
    * Reset button tool.
    **/
    ResetButtonWidget = 26,
    /**
    * Submit button tool.
    **/
    SubmitButtonWidget = 27,
    /**
     * ComboBox tool.
     * */
    ComboChoiceWidget = 28,
    /**
     * ListBox tool.
     **/
    ListBoxChoiceWidget = 29,
    /**
    * Link annotation tool.
    **/
    Link = 30,
    /**
     * Caret annotation tool.
     * @ignore exclude from docs
     **/
    Caret = 31,
    /**
     * Movie annotation tool.
     * @ignore exclude from docs
     **/
    Movie = 32,
    /**
     * Screen annotation tool.
     * @ignore exclude from docs
     **/
    Screen = 33,
    /**
     * Printer’s mark annotation tool.
     * @ignore exclude from docs
     **/
    PrinterMark = 34,
    /**
     * Trap network annotation tool.
     * @ignore exclude from docs
     **/
    TrapNet = 35,
    /**
     * Watermark annotation tool.
     * @ignore exclude from docs
     **/
    Watermark = 36,
    /**
     * 3D annotation tool.
     * @ignore exclude from docs
     **/
    ThreeDimension = 37,
    /**
     * Projection annotation tool.
     * @ignore exclude from docs
     **/
    Projection = 38,
    /**
     * RichMedia annotation tool.
     **/
    RichMedia = 39,
    /**
     * ReplaceText annotation tool.
     */
    ReplaceText = 40,
    /**
     * TableDataExtraction tool.
     */
    TableDataExtraction = 41
}
