import { IModList, ModList } from "./ModList";
export declare class ISource {
    id?: string;
    text?: string;
    variant?: string;
    name?: string;
    desc?: string;
    tags?: string[];
    modList?: ModList | IModList;
}
export declare class Source implements ISource {
    id: string;
    variant: string;
    name?: string;
    desc?: string;
    tags: string[];
    modList?: ModList;
    bpKey: string;
    text: string;
    static ensureObject(source: ISource): Source;
    constructor(params?: ISource);
    updateHash(): boolean;
    addTag(tag: string): void;
    static isBlueprintString(bpStr: string): boolean;
    removeTag(tag: string): void;
    static blueprintStringToObject(bpStr: string): any;
    static anonymizeBlueprintString(bpStr: string): string;
    static objectToBlueprintString(bpObj: any): string;
}
export interface BlueprintDetails {
    icons: any[];
    entities: any[];
    tiles: any[];
    item: string;
    label: string;
    description: string;
    version: number;
}
export interface BlueprintBookDetails {
    blueprints: BlueprintDetails[];
    item: string;
    label: string;
}
export declare class SourceBlueprintDetails extends Source {
    constructor(params?: ISource);
    normalizeCoordinates(): void;
    hasRequiredEntities(): boolean;
    data: BlueprintDetails;
    get entityCounts(): {
        [key: string]: number;
    };
    get gridRange(): {
        minX: number;
        maxX: number;
        minY: number;
        maxY: number;
    };
    get gridSize(): {
        x: number;
        y: number;
    };
}
