import { Language } from "highlight.js";
import { PropertyIndexedType } from "../Enums";
import { Identity } from "../identities";
import { RollupEnums, DatePropertyFilterCustomValue } from "../RollupQuery";
import { Tag } from "../Tags";
import { GuidValue } from "@omnia/fx-models";
export declare enum OmniaSearchScopes {
    Tenant = 1,
    PublishingApps = 2,
    PageCollections = 3,
    Channels = 4,
    BusinessProfiles = 5
}
export declare enum OmniaSearchFilterTypes {
    FixedValue = 1,
    User = 2
}
export interface OmniaSearchPropertyFilter {
    property: string;
    type: PropertyIndexedType.Boolean | PropertyIndexedType.DateTime | PropertyIndexedType.Text | PropertyIndexedType.Number | PropertyIndexedType.Person | PropertyIndexedType.Taxonomy | PropertyIndexedType.EnterpriseKeywords | PropertyIndexedType.Language | PropertyIndexedType.Tags;
    valueObj: OmniaSearchPropertyFilterValue;
}
export interface OmniaSearchPropertyFilterValue {
}
export interface OmniaSearchBooleanPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: boolean;
}
export interface OmniaSearchNumberPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: number;
}
export interface OmniaSearchTextPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: string;
    text?: string;
}
export interface OmniaSearchPersonPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: Array<Identity>;
}
export interface OmniaSearchDatePropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: RollupEnums.DatePeriods;
    customValueDetails?: {
        from: DatePropertyFilterCustomValue;
        to: DatePropertyFilterCustomValue;
    };
}
export interface OmniaSearchTagPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    value: Array<Tag>;
}
export interface OmniaSearchTaxonomyPropertyFilterValue extends OmniaSearchPropertyFilterValue {
    fixedTermIds?: Array<GuidValue>;
    includeEmpty: boolean;
}
export interface OmniaSearchLanguageFilterValue extends OmniaSearchPropertyFilterValue {
    value: Language;
    filterType: OmniaSearchFilterTypes;
}
