import { Settings } from './index'; export declare abstract class TsType { protected value: T; id: string; description?: string; constructor(value: T); protected safeId(): string; protected toBlockComment(): string; isSimpleType(): boolean; toDeclaration(settings: Settings): string; toType(settings: Settings): string; abstract toString(settings: Settings): string; } export interface TsProp { name: string; required: boolean; type: TsType; } export declare class Any extends TsType { constructor(); toString(): string; } export declare class String extends TsType { constructor(); toString(): string; } export declare class Boolean extends TsType { constructor(); toString(): string; } export declare class Number extends TsType { constructor(); toString(): string; } export declare class Object extends TsType { constructor(); toString(): string; } export declare class Null extends TsType { constructor(); toString(): string; } export declare class Literal extends TsType { toString(): string; } export declare class Reference extends TsType { toString(): string; } export declare class EnumValue extends TsType { identifier: string; value: string; constructor([identifier, value]: string[]); toDeclaration(): string; toString(): string; } export declare class Enum extends TsType { id: string; constructor(id: string, value: EnumValue[]); isSimpleType(): boolean; toString(settings: Settings): string; toDeclaration(settings: Settings): string; } export declare class Array extends TsType> { constructor(value?: TsType); toString(settings: Settings): string; } export declare class Intersection extends TsType[]> { isSimpleType(): boolean; toString(settings: Settings): string; } export declare class Union extends TsType[]> { isSimpleType(): boolean; toString(settings: Settings): string; } export declare class Interface extends TsType[]> { static reference(id: string): Interface; toString(settings: Settings): string; isSimpleType(): boolean; toDeclaration(settings: Settings): string; }