import { validateProps } from "../../src/types/utils";
import { UsedProperties, SegmentProperties, subConditionProperties, SegmentProfileCountProperties } from "../../src/types/segments";
import { PropertiesDefault, PropertiesPossible } from "../../src/types/parameterValues";
import { segmentObjectProperties, parameterValuesObjectProperties, segmentCountObjectProperties } from "../../src/types/validation";
import { sdkResponse } from "../../src/types/sdkResponse";
/**
 * @function validatePropertyName
 * @param {Array<any>} parameterValuesObject
 */
export declare function validatePropertyName(parameterValuesObject: PropertiesDefault): PropertiesDefault;
export declare function formatPropertyName(subCondition: subConditionProperties): subConditionProperties;
export declare function checkExpectedValue(propertyName: string): string;
export declare function setExpectedValue(expectedType: string, propertyValue: any): any;
/**
 * @function validatePropertyValue
 * @param {PropertiesDefault} parameterValuesObject
 */
export declare function validatePropertyValue(parameterValuesObject: PropertiesDefault): parameterValuesObjectProperties;
/**
 * @function validateComparisonOperatorUsage
 * @param {PropertiesPossible} parameterValuesObject
 */
export declare function validateComparisonOperatorUsage(parameterValuesObject: PropertiesPossible): boolean;
/**
 * @function validateMatchType
 * @param {PropertiesDefault} subConditionObject
 */
export declare function validateMatchType(subConditionObject: PropertiesDefault): boolean;
/**
 * @function validateSegmentsProperty
 * @param {PropertiesDefault} subConditionObject
 */
export declare function validateSegmentsProperty(subConditionObject: PropertiesDefault): [boolean, Array<string>];
/**
 * @function validateSegmentObject
 * @param {UsedProperties} params
 * @param {boolean} segmentUpdate
 */
export declare function validateSegmentObject(params: UsedProperties, segmentUpdate: boolean): segmentObjectProperties;
/**
 * @function validateRequiredProps
 * @param {string[]} required
 * @param {{[key: string]: any}} props
 */
export declare function validateRequiredProps(required: string[], props: {
    [key: string]: any;
}): validateProps;
export declare function formatSubConditions(subConditions: subConditionProperties[]): any;
export declare function formatProfilePropertySubCondition(subCondition: subConditionProperties): any;
export declare function formatProfileSegmentSubCondition(subCondition: subConditionProperties): any;
export declare function reformatSegment(sdkObject: sdkResponse, segment: SegmentProperties): sdkResponse;
/**
 * @function isValidDateExpression
 * @param {string} dateExpr
 */
export declare function isValidDateExpression(dateExpr: string): boolean;
/**
 * @function validateSegmentCountObject
 * @param {SegmentProfileCountProperties} params
 */
export declare function validateSegmentCountObject(params: SegmentProfileCountProperties): segmentCountObjectProperties;
