/// <reference path="../vendor/i18next.d.ts" />
//@ts-ignore
import { i18n } from "i18next";
//@ts-ignore
import { ModalPosition } from "@grapecity/core-ui";
import { SignToolSettings } from "../ViewerOptions";
import { SignToolStorage } from "./SignToolStorage";
/**
 * Signature tool type.
 * */
export type SignToolType = 'Type' | 'Draw' | 'Image';
/**
 *
 **/
export type SignToolDialogModel = {
    autoResizeCanvas?: boolean;
    canvasSize?: {
        width: number;
        height: number;
    };
    enabled: boolean;
    hideSaveSignature?: boolean;
    isChanged: boolean;
    location?: 'Center' | 'Top' | 'Right' | 'Bottom' | 'Left' | 'TopLeft' | 'TopRight' | 'BottomRight' | 'BottomLeft' | {
        x: number;
        y: number;
    };
    pageIndex?: number;
    tabs?: ('Type' | 'Draw' | 'Image');
    title?: string;
    selectedTab?: SignToolType;
    saveSignature?: boolean;
    subject?: string;
    convertToContent?: boolean;
    showModal: boolean;
    modalPosition?: ModalPosition;
};
export type SignToolDialogProps = {};
/**
 * Sign tool component state model.
 **/
export type SignToolModel = {
    penColor?: string;
    penWidth?: number;
};
/**
 * Sign tool component properties.
 **/
export type BaseToolProps = {
    enabled: boolean;
    settings?: SignToolSettings;
    in17n: i18n;
    signToolStorage: SignToolStorage;
    canvasSize: {
        width: number;
        height: number;
    };
    onChanged: (isDirty: boolean) => void;
};
/**
 * Type tool component state model.
 **/
export type TypeToolModel = {
    textColor?: string;
    text?: string;
    fontSize?: number;
    fontName?: string;
    italic?: boolean;
    bold?: boolean;
};
/**
 * Image tool component state model.
 **/
export type ImageToolModel = {
    hasImage?: boolean;
};
export interface ISignTool {
    /**
    * Returns result image as data url.
    **/
    toDataURL(): string;
    /**
     * Returns result image blob data.
     **/
    toImageData(): Promise<Uint8Array | null>;
}
