import { BlockSettingsWithDefaultProperty, IBlockInstance, LayoutContextType, PropertyIndexedType } from "@omnia/fx-models"; export interface ReactivePageBlockProperty { id: string; value: T; enterpriseProperty: boolean; } export interface PropertyMapping { pageProperty: string; inherited: boolean; } export interface BlockConfiguration { supportDefaultContent: boolean; supportPropertyMapping: PropertyIndexedType[]; } export interface IPageBlockPropertyStore { setConfiguration(blockInstance: IBlockInstance, configuration: BlockConfiguration): void; getConfiguration(blockInstance: IBlockInstance): BlockConfiguration; getPropertyMapping(blockInstance: IBlockInstance, blockSettings: BlockSettings): PropertyMapping; allowSetDefaultContent(blockInstance: IBlockInstance): boolean; allowOverrideInWriteMode(blockInstance: IBlockInstance, blockSettings: BlockSettings): boolean; updateBlockProperty(value: ReactivePageBlockProperty): any; getBlockProperty(blockInstance: IBlockInstance, blockSettings: BlockSettings, defaultBlockProperty: BlockProperty, nullOrUndefinedValueCustomHandler?: (missingPropertyName: string, parent: object, defaultValue: object) => object, emptyStringValueCustomHandler?: (missingPropertyName: string, parent: object, defaultValue: object) => object, emptyArrayValueCustomHandler?: (missingPropertyName: string, parent: object, defaultValue: object) => object): ReactivePageBlockProperty; } export interface BlockSettingsWithPropertyMapping { pageProperty: string; } export interface WcmBlockSettingsWithDefaultProperty extends BlockSettingsWithDefaultProperty { overrideInWriteMode: boolean; copyOnCreation: boolean; } export declare class WCMReaderContext extends LayoutContextType { } declare module "@omnia/fx-models/Layout" { interface IBlockInstance { wcm: { pageBlockPropertyStore: IPageBlockPropertyStore; }; } }