import { SchemaTransformOptions } from '../common/types'; import { ActionDefinition, ChannelDefinition, EntityDefinition, EventDefinition } from '../integration/definition'; import { z } from '../zui'; type BaseEvents = Record; type BaseActions = Record; type BaseMessages = Record; type BaseChannels = Record; type BaseEntities = Record; type EntityReferences = { [K in keyof TEntities]: z.ZodRef; }; type GenericEventDefinition = { schema: z.GenericZuiSchema, TEvent>; attributes?: Record; }; type GenericChannelDefinition = { messages: { [K in keyof TChannel]: { schema: z.GenericZuiSchema, TChannel[K]>; }; }; }; type GenericActionDefinition = { title?: string; description?: string; billable?: boolean; cacheable?: boolean; input: { schema: z.GenericZuiSchema, TAction>; }; output: { schema: z.GenericZuiSchema, z.ZuiObjectSchema>; }; attributes?: Record; }; export type InterfaceDefinitionProps = { name: TName; version: TVersion; title?: string; description?: string; icon?: string; readme?: string; attributes?: Record; entities?: { [K in keyof TEntities]: EntityDefinition; }; events?: { [K in keyof TEvents]: GenericEventDefinition; }; actions?: { [K in keyof TActions]: GenericActionDefinition; }; channels?: { [K in keyof TChannels]: GenericChannelDefinition; }; __advanced?: SchemaTransformOptions; }; export declare class InterfaceDefinition { readonly props: InterfaceDefinitionProps; readonly name: this['props']['name']; readonly version: this['props']['version']; readonly title: this['props']['title']; readonly description: this['props']['description']; readonly icon: this['props']['icon']; readonly readme: this['props']['readme']; readonly attributes: this['props']['attributes']; readonly entities: { [K in keyof TEntities]: EntityDefinition; }; readonly events: { [K in keyof TEvents]: EventDefinition; }; readonly actions: { [K in keyof TActions]: ActionDefinition; }; readonly channels: { [K in keyof TChannels]: ChannelDefinition; }; readonly __advanced: this['props']['__advanced']; constructor(props: InterfaceDefinitionProps); get metadata(): { readonly sdkVersion: string; }; private _getEntityReference; } export {};