import type { Nullable, WritablePart } from "../base-types";
import { JsonContentType } from "../contracts/base/json-content-type";
import { MemberDefinitionType } from "../contracts/base/member-definition-type";
import { StringContentType } from "../contracts/base/string-content-type";
import Link from "../link";
import { ConditionalValidationResource } from "./conditional-validation-resource";
import { MemberDefinitionResource } from "./member-definition-resource";
export declare class PropertyDefinitionResource extends MemberDefinitionResource {
    indexed: boolean;
    isMandatory: boolean;
    isMultiLanguage: boolean;
    isMultiValue: boolean;
    isUnique: boolean;
    boost: boolean;
    includeInContent: boolean;
    includeInCompletion: boolean;
    ignoreOnExport: boolean;
    storedInGraph: boolean;
    conditionalValidation?: ConditionalValidationResource;
    validationExpression: Nullable<string>;
    get definitionType(): MemberDefinitionType;
}
export declare class BooleanPropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<BooleanPropertyDefinitionResource>>);
}
export declare class DateTimePropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<DateTimePropertyDefinitionResource>>);
}
export declare class DateTimeOffsetPropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<DateTimeOffsetPropertyDefinitionResource>>);
}
export declare class DecimalPropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<DecimalPropertyDefinitionResource>>);
}
export declare class IntegerPropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<IntegerPropertyDefinitionResource>>);
}
export declare class JsonPropertyDefinitionResource extends PropertyDefinitionResource {
    contentType: Nullable<JsonContentType>;
    constructor(init?: Partial<WritablePart<JsonPropertyDefinitionResource>>);
}
export declare class LongPropertyDefinitionResource extends PropertyDefinitionResource {
    constructor(init?: Partial<WritablePart<LongPropertyDefinitionResource>>);
}
export declare class StringPropertyDefinitionResource extends PropertyDefinitionResource {
    contentType: StringContentType;
    validationExpression: Nullable<string>;
    dataSource: Nullable<Link>;
    constructor(init?: Partial<WritablePart<StringPropertyDefinitionResource>>);
}
