import { TInputDecoratorOptions, TOutputDecoratorOptions } from '@bearer/types/lib/input-output-decorators'; import * as ts from 'typescript'; import Metadata from './metadata'; export declare type ComponentMetadata = { classname: string; isRoot: boolean; initialTagName: string; fileName: string; finalTagName: string; name?: string; imports?: string[]; inputs?: TComponentInputDefinition[]; outputs?: TComponentOutputDefinition[]; }; export declare type TComponentInputDefinition = { name: string; type: 'string' | 'number'; default: string | number; }; declare type TBasicFormat = 'string' | 'number' | 'boolean' | 'object' | 'any'; declare type TUnknown = 'unspecified'; export declare type TOuputFormat = TUnknown | { type: TBasicFormat; } | { [key: string]: TBasicFormat | TBasicFormat[]; }; export declare type TComponentOutputDefinition = { name: string; eventName: string; payloadFormat: TOuputFormat; }; export declare type TransformerOptions = { verbose?: true; metadata?: Metadata; }; export declare type FileTransformerOptions = TransformerOptions & { outDir: string; srcDir?: string; }; export declare type SourceCodeTransformerOptions = TransformerOptions & { srcDirectory: string; buildDirectory: string; }; export declare type SpecComponent = { classname: string; isRoot: boolean; initialTagName: string; name: string; label: string; input: any; output: any; }; export declare type RootComponent = SpecComponent & { finalTagName: string; }; export declare type CompileSpec = { components: SpecComponent[]; }; export declare type InputMeta = TInputDecoratorOptions & { propDeclarationName: string; typeIdentifier?: ts.TypeNode; intializer?: ts.Expression; loadMethodName: string; functionMethodName: string; watcherName: string; }; export declare type CreateFetcherMeta = { functionName: string; functionMethodName: string; }; export declare type TCreateLoadResourceMethod = { propertyReferenceIdName: string; typeIdentifier?: ts.TypeNode; propDeclarationName: string; functionMethodName: string; functionReferenceIdKeyName: string; loadMethodName: string; functionArguments?: string[]; }; export declare type TCreateLoadDataCall = { loadMethodName: string; }; export declare type TAddAutoLoad = { propertyReferenceIdName: string; autoLoad: boolean; loadMethodName: string; }; export declare type OutputMeta = TOutputDecoratorOptions & { propDeclarationName: string; propDeclarationNameRefId: string; functionMethodName: string; functionName: string; loadMethodName: string; initializer: ts.Expression; typeIdentifier?: ts.TypeNode; propertyReferenceIdName: string; autoLoad?: true | false; }; export {};