import type { SchemaOf } from '../helpers'; import { Joi } from '../helpers'; import { Conversation, Dialogue, Presence, Recording, Reports, UserInput, View, Vocalise, Vision, FeatureFlags, VoiceToText, Flows, System, Microphone } from './features'; export declare type RevisionGlobal = number; export declare type RevisionUser = [number, number?]; export declare type Revision = RevisionGlobal | RevisionUser; export declare const revisionGlobalSchema: Joi.NumberSchema; export declare const revisionUserSchema: Joi.ArraySchema; export declare const revisionSchema: Joi.AlternativesSchema; export declare function isEqualRevision(a: Revision, b: Revision): boolean; export interface IBaseConfig { conversation: Conversation.IConfig; dialogue: Dialogue.IConfig; presence: Presence.IConfig; recording: Recording.IConfig; reports: Reports.IConfig; userInput: UserInput.IConfig; view: View.IConfig; vocalise: Vocalise.IConfig; vision: Vision.IConfig; voiceToText: VoiceToText.IConfig; featureFlags: FeatureFlags.IConfig; flows: Flows.IConfig; system: System.IConfig; microphone: Microphone.IConfig; } export declare type DeepPartial = { [P in keyof T]?: DeepPartial; }; export declare type IDeepPartialBaseConfig = DeepPartial; export declare type IRawConfig = IDeepPartialBaseConfig & { revision: RevisionGlobal; }; export interface IConfig extends IBaseConfig { revision: Revision; } export interface IPartialConfig extends IDeepPartialBaseConfig { revision: Revision; } export declare const partialBaseConfigSchemaMap: SchemaOf; export declare const baseConfigSchemaMap: SchemaOf; export declare const rawConfigSchema: Joi.ObjectSchema; export declare const partialConfigSchema: Joi.ObjectSchema; export declare const baseConfigSchema: Joi.ObjectSchema; export declare const fullConfigSchema: Joi.ObjectSchema;