import * as ts from 'typescript'; export declare type Default = boolean | string | undefined | number; export interface FormProperty { title: string; type: 'string' | 'boolean'; default?: boolean | string; description?: string; } export declare type FormProperties = { [key: string]: FormProperty; }; export interface FormInterface { title: string; type: 'object'; properties: FormProperties; } export declare type Form = { [key: string]: FormInterface; }; export declare class Utility { static capitalize(str: string): string; static reSpace(str: string): string; static fromCamelCaseToSentence(word: string): string; } export declare class CustomTs { static hasJSDocNodes(node: ts.Node & { jsDoc?: ts.JSDoc[]; }): node is ts.Node & { jsDoc: ts.JSDoc[]; }; static hasTypeNode(node: ts.TypeElement & { type?: ts.TypeNode; }): node is ts.TypeElement & { type: ts.TypeNode; }; } export declare class TStoJSONSchema { static inputNodes(input: string, options?: ts.CompilerOptions): ts.SourceFile; static getText(node: ts.TypeElement | ts.InterfaceDeclaration): string | undefined; static assertText(node: ts.TypeElement | ts.InterfaceDeclaration): string; static getType(node: ts.TypeElement): "string" | "boolean"; static getDefault(str: string): Default; static getComment(node: ts.TypeElement): { description: string; def: string; }; static getProperties(node: ts.InterfaceDeclaration): FormProperties; static parseFromSource(source: ts.SourceFile): Form; static parse(input: string): { properties: Form; }; }