export type PatternsFieldType = 'SHORT_TEXT' | 'LONG_TEXT' | 'NUMBER' | 'BOOLEAN' | 'DATE' | 'DATETIME' | 'TIME' | 'URL' | 'ARRAY' | 'REFERENCE' | 'MULTI_REFERENCE' | 'OBJECT' | 'IMAGE' | 'VIDEO' | 'MEDIA_GALLERY' | 'ADDRESS' | 'RICH_TEXT' | 'DOCUMENT' | 'RICH_CONTENT' | 'MULTI_DOCUMENT' | 'EMAIL' | 'AUDIO' | 'COLOR' | 'UNKNOWN';
export type QueryOperator = 'CONTAINS' | 'ENDS_WITH' | 'EQ' | 'EXISTS' | 'GT' | 'GTE' | 'HAS_ALL' | 'HAS_SOME' | 'LT' | 'LTE' | 'NE' | 'STARTS_WITH' | 'URLIZED';
export interface NumberRange {
    min?: number;
    max?: number;
}
export interface StringLengthRange {
    minLength?: number;
    maxLength?: number;
}
interface BaseField {
    id: string;
    displayName: string;
    isPii?: boolean;
    helpText?: string;
    validation?: {
        numberRange?: NumberRange;
        stringLengthRange?: StringLengthRange;
        required: boolean;
    };
    capabilities?: {
        supportedQueryOperators: QueryOperator[];
        sortable: boolean;
    };
}
export interface BaseReferenceField extends BaseField {
    referenceMetadata: {
        referencedCollectionId: string;
    };
}
export interface ReferenceField extends BaseReferenceField {
    type: 'REFERENCE';
}
export interface MultiReferenceField extends BaseReferenceField {
    type: 'MULTI_REFERENCE';
}
export interface NonReferenceField extends BaseField {
    type: Exclude<PatternsFieldType, 'REFERENCE' | 'MULTI_REFERENCE'>;
}
export type Field = ReferenceField | MultiReferenceField | NonReferenceField;
export type FieldSpec = Omit<Field, 'id'>;
export {};
//# sourceMappingURL=Field.d.ts.map