import type { LiteralUnion } from 'type-fest';
import type { ExtractAssetPreset } from './extractor-types';
declare class Asset<O extends Record<string, any> = Record<string, any>> {
    #private;
    type: LiteralUnion<"" | ExtractAssetPreset, string>;
    constructor(type?: Asset['type']);
    get props(): O;
    clear(): this;
    get(key: LiteralUnion<keyof O, string>): O[LiteralUnion<keyof O, string>];
    set(key: LiteralUnion<keyof O, string>, value: any): this;
    getId(): string;
    setId(id: any): this;
    merge(...objs: Record<string, any>[]): O;
    remove(key: LiteralUnion<keyof O, string>): this;
    toJSON(): {
        type: LiteralUnion<"" | ExtractAssetPreset, string>;
        id: string;
        props: O;
    };
    toString(): string;
}
export default Asset;
