import { Property } from './property';
export declare class Properties {
    moduleName: string;
    properties: Property[];
    timestampFields: string[];
    deletedAtField: string[];
    [Symbol.iterator](): Generator<Property, void, unknown>;
    get length(): number;
    get hasI18n(): boolean;
    get hasEnum(): boolean;
    get hasIndex(): boolean;
    get withoutTimestamps(): Property[];
    get withoutDeletedAt(): Property[];
    /***************************************************
     * get relationship for import to avoid duplicates *
     ***************************************************/
    get withImportRelationshipOneToOne(): Property[];
    get withImportRelationshipManyToOne(): Property[];
    get withImportRelationshipOneToMany(): Property[];
    get withImportRelationshipManyToMany(): Property[];
    /****************
     * RELATIONSHIP *
     ****************/
    get withRelationship(): Property[];
    get withRelationshipOneToOne(): Property[];
    get withRelationshipOneToOneWithRelationshipField(): Property[];
    get withRelationshipOneToOneWithoutRelationshipField(): Property[];
    get withRelationshipManyToOne(): Property[];
    get withRelationshipOneToMany(): Property[];
    get withRelationshipManyToMany(): Property[];
    get withRelationshipType(): Property[];
    get withTimezone(): Property[];
    get id(): Property | undefined;
    /*************
     * DASHBOARD *
     *************/
    get gridFields(): Property[];
    get formDetailFields(): Property[];
    get formGroupFields(): Property[];
    /*************
     * AGGREGATE *
     *************/
    get aggregate(): Property[];
    /************
     * COMMANDS *
     ************/
    get createCommand(): Property[];
    get updateCommand(): Property[];
    get upsertCommand(): Property[];
    /********************
     * COMMAND HANDLERS *
     ********************/
    get createCommandHandler(): Property[];
    get updateCommandHandler(): Property[];
    get upsertCommandHandler(): Property[];
    /********************
     * QUERY HANDLERS *
     ********************/
    get findQueryHandler(): Property[];
    get findByIdQueryHandler(): Property[];
    get getQueryHandler(): Property[];
    /************
     * SERVICES *
     ************/
    get createService(): Property[];
    get createItemsService(): Property[];
    get updateService(): Property[];
    get upsertService(): Property[];
    get createdEvent(): Property[];
    get updatedEvent(): Property[];
    get deletedEvent(): Property[];
    /***************
     * CONTROLLERS *
     ***************/
    get createController(): Property[];
    get updateController(): Property[];
    get createResolver(): Property[];
    get updateResolver(): Property[];
    /***********
     * GRAPHQL *
     ***********/
    get graphqlProperties(): Property[];
    get graphqlInputProperties(): Property[];
    /********
     * REST *
     ********/
    get dtoProperties(): Property[];
    get dtoInputProperties(): Property[];
    /**********
     * MODELS *
     **********/
    get modelColumns(): Property[];
    get schemaRelations(): Property[];
    get columnsWithIndex(): Property[];
    /***********
     * POSTMAN *
     ***********/
    get postmanGraphQLCreateQuery(): Property[];
    get postmanGraphQLCreateVariables(): Property[];
    get postmanGraphQLGetQuery(): Property[];
    get postmanGraphQLFindQuery(): Property[];
    get postmanGraphQLFindByIdQuery(): Property[];
    get postmanGraphQLUpdateQuery(): Property[];
    get postmanGraphQLUpdateVariables(): Property[];
    get postmanGraphQLDeleteQuery(): Property[];
    get postmanRestCreate(): Property[];
    get postmanRestUpdate(): Property[];
    /***********
     * TESTING *
     ***********/
    get test(): Property[];
    get isNotNullable(): Property[];
    get hasLength(): Property[];
    get hasMaxLength(): Property[];
    get hasMinLength(): Property[];
    get isDecimal(): Property[];
    get isInteger(): Property[];
    get isIntegerUnsigned(): Property[];
    get isBoolean(): Property[];
    get isEnum(): Property[];
    get isTimestamp(): Property[];
    /**********
     * OTHERS *
     **********/
    get valueObjects(): Property[];
    get response(): Property[];
    get seed(): Property[];
    get mapper(): Property[];
    get mock(): Property[];
    getForeignRelationship(boundedContextName: string): Property[];
    add(property: Property): void;
    filter(fn: () => {}): Property[];
    toDto(): Property[];
}
