/// <reference types="node" />
import sharp from "sharp";
import { PluginPreviewImageHashCreateInput } from "../generated-admin-types";
/**
 * @category Strategy
 */
export interface PreviewImageHashStrategy {
    /**
     * Generates the image hash
     *
     * WARNING: This function mutates the sharp object!
     *
     * @returns Preview Hash
     */
    encode(buffer: sharp.Sharp, input: PluginPreviewImageHashCreateInput): Promise<string>;
}
/**
 * @category Strategy
 */
export type PreviewImageHashBaseArgs = {
    resizeOptions?: sharp.ResizeOptions;
    encoding?: BufferEncoding;
};
/**
 * Shared logic and values to reduce the boilerplate inside strategies
 *
 * @category Strategy
 */
export declare abstract class PreviewImageHashBase {
    default: {
        readonly width: 64;
        readonly background: {
            readonly r: 255;
            readonly g: 255;
            readonly b: 255;
            readonly alpha: 1;
        };
        readonly encoding: "base64";
    };
    resizeOptions: sharp.ResizeOptions;
    encoding: BufferEncoding;
    /**
     * Clones the resize options so as to not mutate the passed in object.
     * @see args.resizeOptions
     */
    constructor(args: PreviewImageHashBaseArgs);
}
