import { type IBounds } from '@visactor/vutils';
import type { IContext2d, ICustomPath2D, IGraphicAttribute, IPath2D, ISymbolClass } from '../../interface';
export declare class CustomSymbolClass implements ISymbolClass {
    type: string;
    path: ICustomPath2D;
    pathStr: string;
    isSvg: boolean;
    svgCache?: {
        path: ICustomPath2D;
        attribute: Partial<IGraphicAttribute>;
    }[];
    constructor(type: string, path: ICustomPath2D | {
        path: ICustomPath2D;
        attribute: Partial<IGraphicAttribute>;
    }[], isSvg?: boolean);
    drawOffset(ctx: IContext2d, size: number, x: number, y: number, offset: number, z?: number, cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void): boolean;
    draw(ctx: IContext2d, size: number, x: number, y: number, z?: number, cb?: (path: ICustomPath2D, attribute?: Record<string, any>) => void): boolean;
    protected parseSize(size: number | [number, number]): number;
    drawWithClipRange(ctx: IPath2D, size: number, x: number, y: number, clipRange: number, z?: number, cb?: (p: ICustomPath2D, a: any) => void): boolean;
    bounds(size: number, bounds: IBounds): void;
}
