import { LayerType } from "../types/enum";
import { Transform, ScaleType, ColorType, PointNumber, AnyCentring, AnyTextAlign, AnySaveFormat } from "../types";
import { Gradient } from "../structures/helpers/Gradient";
import { Canvas, SKRSContext2D } from "@napi-rs/canvas";
import { Pattern } from "../structures/helpers/Pattern";
import { LayersManager } from "../structures/managers/LayersManager";
export declare function generateID(type: string): string;
export declare function isColor(v: ColorType): "string" | "number" | "bigint" | "boolean" | "symbol" | "undefined" | "object" | "function";
export declare function parseHex(v: string): string;
export declare function parseColor(v: ColorType): string | Pattern | Gradient;
export declare function parseToNormal(v: ScaleType, ctx: SKRSContext2D, canvas: Canvas, layer?: {
    width: number;
    height: number;
}, options?: {
    vertical?: boolean;
    layer?: boolean;
}, manager?: LayersManager): number;
export declare function parser(ctx: SKRSContext2D, canvas: Canvas, manager?: LayersManager): {
    parse(v: ScaleType, layer?: {
        width: number;
        height: number;
    }, options?: {
        vertical?: boolean;
        layer?: boolean;
    }): number;
    parseBatch(values: Record<string, {
        v: ScaleType;
        layer?: {
            width: number;
            height: number;
        };
        options?: {
            vertical?: boolean;
            layer?: boolean;
        };
    }>): Record<string, number>;
};
export declare function drawShadow(ctx: SKRSContext2D, shadow: any): void;
export declare function opacity(ctx: SKRSContext2D, opacity: number): void;
export declare function filters(ctx: SKRSContext2D, filters: string): void;
export declare function parseFillStyle(ctx: SKRSContext2D, color: ColorType): string | Promise<CanvasPattern> | CanvasGradient;
export declare function transform(ctx: SKRSContext2D, transform: Transform, layer?: {
    width: number;
    height: number;
    x: number;
    y: number;
    type: LayerType;
}, extra?: {
    text: string;
    textAlign: AnyTextAlign;
    fontSize: number;
    multiline: boolean;
}): void;
export declare function saveFile(buffer: any, extension: AnySaveFormat, name: string): Promise<void>;
export declare function generateRandomName(): string;
export declare function isImageUrlValid(src: string): boolean;
export declare function centring(centring: AnyCentring, type: LayerType, width: number, height: number, x: number, y: number): {
    x: number;
    y: number;
};
export declare function getBoundingBoxBezier(points: PointNumber[], steps?: number): {
    min: {
        x: number;
        y: number;
    };
    max: {
        x: number;
        y: number;
    };
    center: {
        x: number;
        y: number;
    };
    width: number;
    height: number;
};
