import { type PageDesignBlockDescriptor, type PageDesignIntent, type PageDesignIntentParseResult, type PageDesignIntentUpdate, type PageDesignStructureEvent } from './pageDesignIntent';
import { type DesignBlockId } from './types';
export type ContentTemplateBlockScope = 'entry' | 'template';
export type ContentTemplateDesignBlockId = DesignBlockId;
export type ContentTemplateDesignIntent = PageDesignIntent<ContentTemplateDesignBlockId>;
export type ContentTemplateDesignIntentParseResult = PageDesignIntentParseResult<ContentTemplateDesignBlockId>;
export type ContentTemplateDesignIntentUpdate = PageDesignIntentUpdate<ContentTemplateDesignBlockId>;
export type ContentTemplateDesignBlockDescriptor = PageDesignBlockDescriptor<ContentTemplateDesignBlockId> & Readonly<{
    scope: ContentTemplateBlockScope;
    orderIndex: number;
}>;
export declare function asContentTemplateDesignBlockId(value: string): ContentTemplateDesignBlockId;
export declare function parseContentTemplateDesignIntent(value: unknown): ContentTemplateDesignIntentParseResult;
export declare function reduceContentTemplateDesignIntentForStructureEvent(intent: ContentTemplateDesignIntent, event: PageDesignStructureEvent<ContentTemplateDesignBlockId>): ContentTemplateDesignIntentUpdate;
export declare function equalsContentTemplateDesignIntent(left: ContentTemplateDesignIntent, right: ContentTemplateDesignIntent): boolean;
export declare function contentTemplateDesignIntentToJsonRecord(intent: ContentTemplateDesignIntent): Record<string, unknown>;
export declare function contentTemplateBlocksToDesignDescriptors(blocks: readonly Readonly<{
    id: string;
    blockKind: string;
    scope: ContentTemplateBlockScope;
    orderIndex: number;
}>[]): readonly ContentTemplateDesignBlockDescriptor[];
