import { z } from 'zod'; import type { StaticDocumentMeta, UiWidgetType } from '@loopstack/contracts/types'; export type WidgetRef = string | UiWidgetType; export declare const BLOCK_CONFIG_METADATA_KEY: unique symbol; export declare const BLOCK_TYPE_METADATA_KEY: unique symbol; export declare const TRANSITIONS_METADATA_KEY: unique symbol; export declare const GUARDS_METADATA_KEY: unique symbol; export declare const globalDocumentRegistry: Set; export declare function getRegisteredDocuments(): Set; export type BlockType = 'workflow' | 'tool' | 'document'; export interface BlockOptions { name?: string; title?: string; description?: string; widget?: WidgetRef | WidgetRef[]; schema?: z.ZodType; configSchema?: z.ZodType; tags?: string[]; meta?: StaticDocumentMeta; } export interface ToolOptions { name?: string; description?: string; widget?: WidgetRef | WidgetRef[]; schema?: z.ZodType; configSchema?: z.ZodType; } export interface WorkflowOptions { name?: string; title?: string; description?: string; widget?: WidgetRef | WidgetRef[]; schema?: z.ZodType; configSchema?: z.ZodType; stateSchema?: z.ZodType; } export interface DocumentOptions { name?: string; title?: string; description?: string; widget?: WidgetRef | WidgetRef[]; schema?: z.ZodType; tags?: string[]; meta?: StaticDocumentMeta; } export declare function Block(type: BlockType, options?: BlockOptions): ClassDecorator; export declare function Workflow(options?: WorkflowOptions): ClassDecorator; export declare function Tool(options?: ToolOptions): ClassDecorator; export declare function Document(options?: DocumentOptions): ClassDecorator; export declare function getBlockType(target: object): BlockType | undefined; export type RetryConfig = number | { attempts?: number; delay?: number; backoff?: 'fixed' | 'exponential'; maxDelay?: number; place?: string; }; export interface NormalizedRetryConfig { attempts: number; delay: number; backoff: 'fixed' | 'exponential'; maxDelay: number; place?: string; } export declare function normalizeRetryConfig(config?: RetryConfig): NormalizedRetryConfig; export interface TransitionMetadata { methodName: string; from: string; to: string; wait?: boolean; priority?: number; schema?: z.ZodType; retry?: NormalizedRetryConfig; timeout?: number; } export interface GuardMetadata { transitionMethodName: string; guardMethodName: string; } export interface TransitionOptions { from?: string; to: string; wait?: boolean; priority?: number; schema?: z.ZodType; retry?: RetryConfig; timeout?: number; } export declare function Transition(options: TransitionOptions): MethodDecorator; export declare function Guard(guardMethodName: string): MethodDecorator; //# sourceMappingURL=block.decorator.d.ts.map