import type { BlockTypeDefinition, VariantDefinition } from './types.js';
export interface BlockCatalogOptions {
    /**
     * Custom blocks to layer on top of the core catalog. Provided either
     * inline or — when omitted — pulled from
     * `globalThis.__actuateConfig.pageBuilder.blocks` so consumer-defined
     * blocks declared in `actuate.config.ts` are picked up automatically.
     *
     * Custom blocks override core blocks of the same `type`, mirroring the
     * "last one wins" semantics consumers already expect from plugin merging.
     */
    customBlocks?: BlockTypeDefinition[];
    /**
     * If true (default), include core blocks in the catalog. Set to false to
     * build a catalog from custom blocks only.
     */
    includeCore?: boolean;
}
export declare class BlockCatalog {
    private blocks;
    constructor(options?: BlockCatalogOptions);
    get(type: string): BlockTypeDefinition | undefined;
    getAll(): BlockTypeDefinition[];
    register(block: BlockTypeDefinition): void;
    getVariant(blockType: string, variantName: string): VariantDefinition | undefined;
}
//# sourceMappingURL=blocks.d.ts.map