import type { Definition } from 'typescript-json-schema'; import type { ExtensionLogger } from '@sap/ux-specification-types'; import type { App, AppSchema, Page } from '../../v4/sync-rules'; /** * Combined context passed to Decorator and each DecoratorStep. * Uses interfaces compatible with App and Page classes from sync-rules. */ export interface DecoratorContext { /** App-level context (has config, getMinUI5Version) */ app?: App; /** Page-level context (has config, target) */ page?: Page; /** Custom context (e.g., table state, section state) */ custom?: Record; /** Schema context for definition lookup */ schema: AppSchema; /** Logger for debugging and error reporting */ logger?: ExtensionLogger; } /** * Interface for decorator processing steps. * Each step handles a specific type of decorator metadata. * * Steps are executed in order: enums -> message -> hide */ export interface DecoratorStep { /** Unique name for the step (used for disabling via options) */ readonly name: string; /** * Initialize this step's decorator logic for the schema definition. * * @param target - The class prototype containing decorator metadata * @param definition - The schema definition to modify * @param context - context for condition evaluation */ init(target: object, definition: Definition, context: DecoratorContext): void; } //# sourceMappingURL=interfaces.d.ts.map