export type IntentsDeclarations = Record<string, IntentDeclaration>;
export type IntentDeclarationProperties<T extends string> = Record<T | string, IntentPropertyDeclaration<T>>;
export interface IntentDeclaration<T extends string = BuiltinTypes | string> {
    name?: string;
    description: string;
    properties: IntentDeclarationProperties<T>;
}
export interface IntentPropertyDeclarationWithSchema {
    required: boolean;
    schema: IntentSchema;
}
export interface IntentPropertyDeclarationWithSchemas<T extends string> {
    required: boolean;
    schemas: Record<T, IntentSchema>;
}
export type IntentPropertyDeclaration<T extends string> = IntentPropertyDeclarationWithSchema | IntentPropertyDeclarationWithSchemas<T>;
interface IntentSchema {
    type: any;
    [propertyName: string]: any;
}
export type BuiltinTypes = 'dt.query' | 'dt.timeframe' | 'dt.entity.host';
export {};
