import { SignToolSettings } from "../ViewerOptions";
import SignaturePad from "./SignaturePad/SignaturePad";
import { SignToolType } from "./types";
/**
 * Signature tool storage.
 **/
export declare class SignToolStorage {
    ownerUserName: string;
    /**
     * Create signature tool storage for the user specified by the ownerUserName argument.
     * @param ownerUserName
     */
    constructor(ownerUserName: string);
    /**
     * Local storage's key which is used to store/retrieve signature settings object.
     **/
    get storageKey(): string;
    /**
     * Gets the signature tool settings saved in browser's local storage.
     **/
    get settings(): SignToolSettings | undefined;
    /**
     * Save setting value in local storage.
     * @param settingName
     * @param value
     */
    setSetting(settingName: string, value: any): void;
    /**
     * Clear whole signature storage data.
     **/
    reset(): void;
    /**
     * Clear all previously stored canvas images.
     * */
    resetCanvasImages(): void;
    /**
    * Clear previously stored canvas image for tool given by argument toolType.
    **/
    resetCanvasImage(toolType: SignToolType): void;
    /**
     * Save image data from canvas element into local storage.
     * @param signToolType
     * @param canvas
     */
    saveCanvas(toolType: SignToolType, canvas: HTMLCanvasElement, signaturePad?: SignaturePad): void;
    /**
    * Save image data into local storage.
    * @param signToolType
    * @param img Image element
    */
    saveImage(signToolType: SignToolType, img: HTMLImageElement): void;
    /**
     * Load signature pad from local storage.
     * @param signToolType
     * @param signaturePad
     */
    loadSignaturePad(signToolType: SignToolType, signaturePad: SignaturePad): Promise<boolean>;
    /**
     * Restore image from local storage.
     * @param signToolType
     * @param canvas
     */
    loadImage(signToolType: SignToolType, canvas: HTMLCanvasElement): Promise<HTMLImageElement | null>;
}
