import { MethodDeclaration, ObjectLiteralElementLike, ObjectLiteralExpression, PropertyAssignment, TypeChecker } from "ts-morph";
import { UI5TSParser } from "../../../../parser/UI5TSParser";
import { AbstractCustomClass, ICustomClassField, ICustomClassMethod, IUIDefine, IViewsAndFragmentsCache } from "../AbstractCustomClass";
export interface ICustomClassTSObjectField extends ICustomClassField<PropertyAssignment> {
}
export interface ICustomClassTSObjectMethod extends ICustomClassMethod<PropertyAssignment | MethodDeclaration> {
}
export declare class CustomTSObject extends AbstractCustomClass<ObjectLiteralElementLike, ObjectLiteralElementLike, ObjectLiteralExpression> {
    defaultModelClassName?: string;
    parentClassNameDotNotation: string;
    readonly typeChecker: TypeChecker;
    protected _fillIsAbstract(): void;
    protected _getUIDefine(): IUIDefine<any>[];
    protected _fillParentClassName(): void;
    methods: ICustomClassTSObjectMethod[];
    fields: ICustomClassTSObjectField[];
    fsPath: string;
    readonly classText: string;
    UIDefine: IUIDefine[];
    relatedViewsAndFragments?: IViewsAndFragmentsCache[];
    readonly node: ObjectLiteralExpression;
    private readonly _sourceFile;
    constructor(objectLiteralExpression: ObjectLiteralExpression, parser: UI5TSParser, typeChecker: TypeChecker);
    loadTypes(): void;
    _fillUIDefine(): void;
    private _generateClassNameDotNotationFor;
    protected _fillFields(metadata?: any, fillTypes?: boolean): ICustomClassTSObjectField[];
    protected _fillMethods(metadata?: any, fillTypes?: boolean): ICustomClassTSObjectMethod[];
    private _modifyType;
    protected _fillUI5Metadata(classInfo?: any, fillTypes?: boolean): void;
    protected _fillInterfaces(): never[];
    protected _fillAggregations(): never[];
    protected _fillEvents(): never[];
    protected _fillProperties(): never[];
    protected _fillAssociations(): never[];
}
