import { IPropertyClass, IRenderResult } from "../interface/i-property-class";
import { UniqueArray } from "./unique-array";
export declare class InterfaceProperty implements IPropertyClass {
    originalName: string;
    interfaceName: string;
    fileName: string;
    description: Array<string>;
    imports: UniqueArray<string>;
    properties: {
        [name: string]: {
            data: IMustacheProperty;
            import?: string;
        };
    };
    additionalProperties: Array<{
        type: string;
        isArray: boolean;
    }>;
    constructor(originalName: string);
    private convertName;
    addImports(_import: string): void;
    addAdditionalProperties(type: string, isArray?: boolean): void;
    addProperty(prop: IProperty): void;
    render(): IRenderResult;
}
interface IMustacheProperty {
    propertyName: string;
    isDescription: boolean;
    description?: Array<string>;
    required: boolean;
    isArray: boolean;
    value: string;
}
export interface IProperty {
    propertyName: string;
    import: string;
    description?: string;
    required: boolean;
    isArray: boolean;
    value: string;
}
export {};
