import type { AdditionalApi, Property } from './model.js';
export { getAdditionalApiFileName, getClassNameAdditionalApi, getResolverNameAdditionalApi, } from '../utils/additional-api.js';
export { type ColumnSizing, getColumnSizingForProperty, } from './column-width.js';
export { getDisplayField, getDisplayFieldExpr, getDisplayFieldFirstIdentifier, } from './display-field.js';
export { getPivotFrontendExcludedFiles, getPivotFrontendKeptFiles, isPivotAggregate, } from './pivot.js';
/** Base filter: no timestamps, no one-to-many, no one-to-one without field */
declare function baseWriteFilter(props: Property[]): Property[];
/** Extends base filter with i18n internal field exclusions. */
declare function crudFilter(props: Property[], moduleName: string): Property[];
/** Filter for read-only queries (exclude deletedAt + relationships except 1:1 with field). */
declare function readQueryFilter(props: Property[]): Property[];
export declare const hasProperties: (props: Property[]) => boolean;
export declare const hasI18nProperties: (props: Property[]) => boolean;
export declare const hasEnumProperties: (props: Property[]) => boolean;
export declare const hasBooleanProperties: (props: Property[]) => boolean;
export declare const hasDateProperties: (props: Property[]) => boolean;
export declare const hasTimestampProperties: (props: Property[]) => boolean;
export declare const hasIndexProperties: (props: Property[]) => boolean;
export declare const hasIndexI18nProperties: (props: Property[]) => boolean;
export declare const hasPivotProperties: (props: Property[]) => boolean;
export declare const hasCompositePrimaryKeys: (props: Property[]) => boolean;
export declare const hasForeignKeyDecoratorProperties: (props: Property[]) => boolean;
export declare const hasBelongsToManyDecoratorProperties: (props: Property[]) => boolean;
export declare const hasHasManyDecoratorProperties: (props: Property[]) => boolean;
export declare const hasHasOneDecoratorProperties: (props: Property[]) => boolean;
export declare const hasBelongsToDecoratorProperties: (props: Property[]) => boolean;
export declare const getI18nProperties: (props: Property[]) => Property[];
export declare const getNotI18nProperties: (props: Property[]) => Property[];
export declare const getEnumProperties: (props: Property[]) => Property[];
export declare const getBooleanProperties: (props: Property[]) => Property[];
export declare const getTimestampProperties: (props: Property[]) => Property[];
export declare const getDecimalProperties: (props: Property[]) => Property[];
export declare const getIntegerProperties: (props: Property[]) => Property[];
export declare const getIntegerUnsignedProperties: (props: Property[]) => Property[];
export declare const getMaxLengthProperties: (props: Property[]) => Property[];
export declare const getMinLengthProperties: (props: Property[]) => Property[];
export declare const getIndexesProperties: (props: Property[]) => Property[];
export declare const getPrimaryKeyProperties: (props: Property[]) => Property[];
export declare const getValueObjectsProperties: (props: Property[]) => Property[];
export declare const getWithoutTimestampsProperties: (props: Property[]) => Property[];
export declare const getWithoutDeletedAtProperties: (props: Property[]) => Property[];
export declare const getWithoutTimestampsWithoutRelationshipProperties: (props: Property[]) => Property[];
export declare const getAggregateProperties: (props: Property[]) => Property[];
export declare const getResponseProperties: (props: Property[]) => Property[];
export declare const getMapperProperties: (props: Property[]) => Property[];
export declare const getMockProperties: (props: Property[]) => Property[];
export declare const getSeedProperties: (props: Property[]) => Property[];
export declare const getPropertiesWithRelationship: (props: Property[]) => Property[];
export declare const getForeignRelationshipProperties: (props: Property[], boundedContextName: string) => Property[];
export declare const getManyToManyRelationshipProperties: (props: Property[]) => Property[];
export declare const getWithImportRelationshipOneToOneProperties: (props: Property[]) => Property[];
export declare const getWithImportRelationshipManyToOneProperties: (props: Property[]) => Property[];
export declare const getWithImportRelationshipOneToManyProperties: (props: Property[]) => Property[];
export declare const getWithImportRelationshipManyToManyProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipOneToOneProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipOneToOneWithFieldProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipOneToOneWithoutFieldProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipManyToOneProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipOneToManyProperties: (props: Property[]) => Property[];
export declare const getPrimaryKeyPropertiesFromPivotTable: (props: Property[]) => Property[];
export declare const getCreateControllerProperties: typeof crudFilter;
export declare const getUpdateControllerProperties: typeof crudFilter;
export declare const getCreateServiceProperties: typeof crudFilter;
export declare const getUpdateServiceProperties: typeof crudFilter;
export declare const getUpsertServiceProperties: typeof crudFilter;
export declare const getTestProperties: typeof crudFilter;
export declare const getNotNullableProperties: (props: Property[], moduleName: string) => Property[];
export declare const getLengthProperties: (props: Property[], moduleName: string) => Property[];
/** createItemsService: same as crud but without availableLangs exclusion. */
export declare function getCreateItemsServiceProperties(props: Property[], moduleName: string): Property[];
export declare const getCreateCommandProperties: typeof baseWriteFilter;
export declare const getUpdateCommandProperties: typeof baseWriteFilter;
export declare const getUpsertCommandProperties: typeof baseWriteFilter;
export declare const getCreateCommandHandlerProperties: typeof baseWriteFilter;
export declare const getUpdateCommandHandlerProperties: typeof baseWriteFilter;
export declare const getUpsertCommandHandlerProperties: typeof baseWriteFilter;
export declare const getCreatedEventProperties: (props: Property[]) => Property[];
export declare const getUpdatedEventProperties: (props: Property[]) => Property[];
export declare const getDeletedEventProperties: (props: Property[]) => Property[];
export declare const getGraphqlProperties: (props: Property[]) => Property[];
export declare const getGraphqlInputProperties: (props: Property[]) => Property[];
export declare const getDtoProperties: (props: Property[]) => Property[];
export declare const getDtoInputProperties: (props: Property[]) => Property[];
export declare const getPostmanGraphqlCreateMutationProperties: typeof crudFilter;
export declare const getPostmanGraphqlCreateVariablesProperties: typeof crudFilter;
export declare const getPostmanGraphqlGetQueryProperties: typeof readQueryFilter;
export declare const getPostmanGraphqlFindQueryProperties: typeof readQueryFilter;
export declare const getPostmanGraphqlFindByIdQueryProperties: typeof readQueryFilter;
export declare const getPostmanGraphqlUpdateMutationProperties: typeof readQueryFilter;
export declare const getPostmanGraphqlDeleteMutationProperties: typeof readQueryFilter;
export declare function getPostmanGraphqlUpdateVariablesProperties(props: Property[], moduleName: string): Property[];
export declare const getPostmanRestCreateProperties: typeof baseWriteFilter;
export declare const getPostmanRestUpdateProperties: typeof baseWriteFilter;
export declare function getI18nSearchableProperties(props: Property[], avoid?: string[]): Property[];
export declare const getGridFieldsProperties: (props: Property[]) => Property[];
export declare const getFormDetailFieldsProperties: (props: Property[]) => Property[];
/**
 * SPEC-12: returns the visible+sorted form fields belonging to a single tab.
 * Builds on `getFormDetailFieldsProperties` (which already excludes timestamps,
 * id, rowId, and `widget.isDetailHidden`) and further restricts to fields whose
 * `widget.tab` matches the given id. Match is exact and case-sensitive.
 */
export declare const getFormDetailFieldsPropertiesForTab: (props: Property[], tabId: string) => Property[];
/**
 * SPEC-12: returns the ordered list of unique tab ids in first-appearance
 * order across the visible form fields. Empty when no field declares
 * `widget.tab`.
 */
export declare const getTabsFromProperties: (props: Property[]) => string[];
/**
 * SPEC-12: true when at least one visible form field declares a non-empty
 * `widget.tab`.
 */
export declare const hasFormTabsProperties: (props: Property[]) => boolean;
export declare const getFormGroupFieldsProperties: (props: Property[]) => Property[];
export declare const getFormGroupFieldsIsNotI18nProperties: (props: Property[]) => Property[];
export declare const getSelectWidgetsProperties: (props: Property[]) => Property[];
export declare const getMultipleSelectWidgetsProperties: (props: Property[]) => Property[];
export declare const getAsyncMultipleSearchSelectWidgetsProperties: (props: Property[]) => Property[];
export declare const getAsyncSearchSelectWidgetsProperties: (props: Property[]) => Property[];
export declare const getGridSelectElementWidgetsProperties: (props: Property[]) => Property[];
export declare const getGridSelectMultipleElementsWidgetsProperties: (props: Property[]) => Property[];
export declare const getGridElementsManagerWidgetsProperties: (props: Property[]) => Property[];
export declare const getWidgetsProperties: (props: Property[]) => Property[];
export declare const hasSelectWidgetsProperties: (props: Property[]) => boolean;
export declare const hasAsyncMultipleSearchSelectWidgetProperty: (props: Property[]) => boolean;
export declare const countWidgetsProperties: (props: Property[]) => number;
export declare const countSelectElementWidgetsProperties: (props: Property[]) => number;
export declare const countMultipleSelectElementWidgetsProperties: (props: Property[]) => number;
export declare const countGridSelectElementWidgetsProperties: (props: Property[]) => number;
export declare const countGridSelectMultipleElementsWidgetsProperties: (props: Property[]) => number;
export declare const countGridElementsManagerWidgetsProperties: (props: Property[]) => number;
export declare const countAsyncMultipleSearchSelectWidgetProperty: (props: Property[]) => number;
export declare function getImportWidgetsManagerProperties(props: Property[], sortImports: boolean): string[];
export declare const getWithRelationshipOneToOneWithRelationshipFieldProperties: (props: Property[]) => Property[];
export declare const getWithRelationshipOneToOneWithoutRelationshipFieldProperties: (props: Property[]) => Property[];
/** Removes newlines and collapses extra spaces into a single line. */
export declare function singleLine(text: string): string;
/** Escapes single quotes and backslashes for use in single-quoted string literals. */
export declare function escapeSingleQuotes(text: string): string;
/** Generates a random UUID v4. */
export declare function uuid(seed?: string): string;
/** Wraps a string in escaped quotes for Postman JSON bodies. */
export declare function postmanQuotes(value: string): string;
export declare function getAdditionalApiQueries(apis: AdditionalApi[]): AdditionalApi[];
export declare function getAdditionalApiMutations(apis: AdditionalApi[]): AdditionalApi[];
export declare function hasAdditionalApiQueries(apis: AdditionalApi[]): boolean;
export declare function hasAdditionalApiMutations(apis: AdditionalApi[]): boolean;
/**
 * Unified path exclusion check for templates.
 * Evaluates both `excludedFiles` and `excludedOperations` from the schema.
 * Templates call: `it.filters.isAllowPath(it.schema, operation, ...pathSegments)`
 * Pass `''` as operation to check only excludedFiles.
 */
export declare function isAllowPath(schema: {
    boundedContextName: string;
    excludedFiles?: string[];
    excludedOperations?: string[];
    moduleName: string;
    moduleNames: string;
}, operation: string, ...pathSegments: string[]): boolean;
export { addI18nPropertySignature, getAggregateNameFromPropertyRelationship, getBoundedContextNameFromPropertyRelationship, getModuleNameFromPropertyRelationship, getModuleNamesFromPropertyRelationship, getPropertyEnumOptions, getPropertyName, isAllowProperty, } from './property-mappers.js';
export { hasQuotation as hasQuotationProperty, isI18nRelationProperty, isPivot as isPivotProperty, isPrimaryKey as isPrimaryKeyProperty, } from './property-predicates.js';
