import type { components } from '../generated/api.js';
import { WorkspaceScopedResource } from './base.js';
/**
 * Workspace-level settings — configure voice, branding, data
 * retention, outreach rules, and more.
 *
 * Each sub-resource has `get()` and `update()`.
 */
export declare class SettingsResource extends WorkspaceScopedResource {
    readonly voice: {
        get: () => Promise<{
            correction_categories: string[];
            keyterms: string[];
            language: string;
            language_providers?: {
                [x: string]: {
                    config?: {
                        [x: string]: unknown;
                    } | undefined;
                    provider: "cartesia" | "elevenlabs" | "groq";
                };
            } | null | undefined;
            post_call_analysis_enabled: boolean;
            pronunciation_dict_id: string | null;
            sensitive_topics: string[];
            speed: number | null;
            stt_provider: ("deepgram" | "openai" | "cartesia") | null;
            tone: string | null;
            transcript_correction_enabled: boolean;
            tts_config: {
                [x: string]: unknown;
            } | null;
            tts_provider: ("cartesia" | "elevenlabs" | "groq") | null;
            voice_id: string | null;
            volume: number | null;
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["VoiceSettingsRequest"]) => Promise<{
            correction_categories: string[];
            keyterms: string[];
            language: string;
            language_providers?: {
                [x: string]: {
                    config?: {
                        [x: string]: unknown;
                    } | undefined;
                    provider: "cartesia" | "elevenlabs" | "groq";
                };
            } | null | undefined;
            post_call_analysis_enabled: boolean;
            pronunciation_dict_id: string | null;
            sensitive_topics: string[];
            speed: number | null;
            stt_provider: ("deepgram" | "openai" | "cartesia") | null;
            tone: string | null;
            transcript_correction_enabled: boolean;
            tts_config: {
                [x: string]: unknown;
            } | null;
            tts_provider: ("cartesia" | "elevenlabs" | "groq") | null;
            voice_id: string | null;
            volume: number | null;
        } & import("../index.js").ResponseMetadata>;
    };
    readonly branding: {
        get: () => Promise<{
            branding: {
                background_color?: string | null | undefined;
                font_family?: string | null | undefined;
                logo_url?: string | null | undefined;
                primary_color?: string | null | undefined;
            };
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["BrandingSettingsRequest"]) => Promise<{
            branding: {
                background_color?: string | null | undefined;
                font_family?: string | null | undefined;
                logo_url?: string | null | undefined;
                primary_color?: string | null | undefined;
            };
        } & import("../index.js").ResponseMetadata>;
    };
    readonly outreach: {
        get: () => Promise<{
            data_templates: {
                fields: {
                    field_type?: components["schemas"]["FieldType"] | undefined;
                    key: string;
                    label: components["schemas"]["NameString"];
                    path: string;
                    required?: boolean | undefined;
                    sensitive?: boolean | undefined;
                }[];
                id?: string | undefined;
                name: components["schemas"]["NameString"];
            }[];
            rules: {
                active?: boolean | undefined;
                channel?: components["schemas"]["ChannelType"] | undefined;
                consent_required?: boolean | undefined;
                data_template_id?: string | null | undefined;
                form_template_id?: string | null | undefined;
                id?: string | undefined;
                message_template?: string | undefined;
                name: components["schemas"]["NameString"];
                quiet_hours?: {
                    enabled?: boolean | undefined;
                    end_hour?: number | undefined;
                    start_hour?: number | undefined;
                    timezone?: string | undefined;
                } | undefined;
                review_required?: boolean | undefined;
                trigger?: "appointment_window" | "post_visit" | "gap_detected" | "form_intake" | "manual" | undefined;
                trigger_config?: {
                    [x: string]: unknown;
                } | undefined;
            }[];
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["OutreachSettingsRequest"]) => Promise<{
            data_templates: {
                fields: {
                    field_type?: components["schemas"]["FieldType"] | undefined;
                    key: string;
                    label: components["schemas"]["NameString"];
                    path: string;
                    required?: boolean | undefined;
                    sensitive?: boolean | undefined;
                }[];
                id?: string | undefined;
                name: components["schemas"]["NameString"];
            }[];
            rules: {
                active?: boolean | undefined;
                channel?: components["schemas"]["ChannelType"] | undefined;
                consent_required?: boolean | undefined;
                data_template_id?: string | null | undefined;
                form_template_id?: string | null | undefined;
                id?: string | undefined;
                message_template?: string | undefined;
                name: components["schemas"]["NameString"];
                quiet_hours?: {
                    enabled?: boolean | undefined;
                    end_hour?: number | undefined;
                    start_hour?: number | undefined;
                    timezone?: string | undefined;
                } | undefined;
                review_required?: boolean | undefined;
                trigger?: "appointment_window" | "post_visit" | "gap_detected" | "form_intake" | "manual" | undefined;
                trigger_config?: {
                    [x: string]: unknown;
                } | undefined;
            }[];
        } & import("../index.js").ResponseMetadata>;
    };
    readonly retention: {
        get: () => Promise<{
            audit_log_days: number;
            call_recordings_days: number;
            call_transcripts_days: number;
            legal_hold: boolean;
            legal_hold_reason?: string | null | undefined;
            phi_data_days: number;
            world_events_days: number;
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["RetentionPolicyRequest"]) => Promise<{
            audit_log_days: number;
            call_recordings_days: number;
            call_transcripts_days: number;
            legal_hold: boolean;
            legal_hold_reason?: string | null | undefined;
            phi_data_days: number;
            world_events_days: number;
        } & import("../index.js").ResponseMetadata>;
    };
    readonly gapScanner: {
        get: () => Promise<{
            appointment_lookahead_hours: number;
            channel_optimization: boolean;
            cooldown_hours: number;
            enabled: boolean;
            max_pending_surfaces: number;
            max_surfaces_per_tick: number;
            min_completion_rate: number;
            requirements: {
                channel?: components["schemas"]["ChannelType"] | undefined;
                entity_type?: "person" | undefined;
                name: components["schemas"]["NameString"];
                priority?: "low" | "normal" | "high" | undefined;
                required_fields: {
                    field_type?: components["schemas"]["FieldType"] | undefined;
                    label: components["schemas"]["NameString"];
                    min_items?: number | null | undefined;
                    path: string;
                }[];
                surface_description?: (components["schemas"]["DescriptionString"] | null) | undefined;
                surface_title?: (components["schemas"]["NameString"] | null) | undefined;
                trigger?: "upcoming_appointment" | "recent_interaction" | undefined;
            }[];
            scan_interval_seconds: number;
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["GapScannerSettingsRequest"]) => Promise<{
            appointment_lookahead_hours: number;
            channel_optimization: boolean;
            cooldown_hours: number;
            enabled: boolean;
            max_pending_surfaces: number;
            max_surfaces_per_tick: number;
            min_completion_rate: number;
            requirements: {
                channel?: components["schemas"]["ChannelType"] | undefined;
                entity_type?: "person" | undefined;
                name: components["schemas"]["NameString"];
                priority?: "low" | "normal" | "high" | undefined;
                required_fields: {
                    field_type?: components["schemas"]["FieldType"] | undefined;
                    label: components["schemas"]["NameString"];
                    min_items?: number | null | undefined;
                    path: string;
                }[];
                surface_description?: (components["schemas"]["DescriptionString"] | null) | undefined;
                surface_title?: (components["schemas"]["NameString"] | null) | undefined;
                trigger?: "upcoming_appointment" | "recent_interaction" | undefined;
            }[];
            scan_interval_seconds: number;
        } & import("../index.js").ResponseMetadata>;
        /**
         * Preview which calls would be flagged by the current gap-scanner config.
         *
         * The spec types the body as `GapScannerPreviewRequest | null`, but the
         * `null` branch only matters when the caller wants to *explicitly* clear
         * the body. Modeling as `body?: GapScannerPreviewRequest` keeps the SDK
         * surface consistent with every other POST wrapper; consumers who need
         * to send the literal `null` can do so via `client.POST(...)` directly.
         */
        preview: (body?: components["schemas"]["GapScannerPreviewRequest"]) => Promise<{
            [x: string]: unknown;
        } & import("../index.js").ResponseMetadata>;
        /** Trigger an on-demand scan with the current gap-scanner config */
        scan: () => Promise<{
            [x: string]: unknown;
        } & import("../index.js").ResponseMetadata>;
    };
    readonly metrics: {
        get: () => Promise<{
            definitions: {
                active?: boolean | undefined;
                aggregation?: "count" | "sum" | "avg" | "min" | "max" | "count_distinct" | "ratio" | "rate" | undefined;
                ai_labels?: string[] | null | undefined;
                ai_query_endpoint?: string | null | undefined;
                ai_query_prompt?: string | null | undefined;
                ai_schema?: {
                    [x: string]: unknown;
                } | null | undefined;
                applies_to_product_types?: string[] | null | undefined;
                builtin?: boolean | undefined;
                categories?: string[] | null | undefined;
                channel_scope?: "all" | "voice" | "text" | "surface" | "inbound" | "outbound" | undefined;
                custom_source_key?: string | null | undefined;
                description?: (components["schemas"]["DescriptionString"] | null) | undefined;
                event_types: string[];
                extract_path?: string | null | undefined;
                extraction_mode?: "static" | "ai_classify" | "ai_extract" | "ai_query" | "sql_expr" | undefined;
                freshness_sla_minutes?: number | undefined;
                granularity?: "aggregate" | "per_entity" | undefined;
                id?: string | undefined;
                key: string;
                latency_tier?: "streaming" | "near_realtime" | "batch" | undefined;
                metric_type: "numerical" | "categorical" | "boolean";
                model_tier?: "free" | "fast" | "balanced" | "max" | "custom" | undefined;
                name: components["schemas"]["NameString"];
                period_granularity?: "hourly" | "daily" | undefined;
                prompt?: string | null | undefined;
                ratio_denominator_event?: string | null | undefined;
                ratio_numerator_event?: string | null | undefined;
                source: "call_intelligence" | "world_events" | "surface_events" | "emotion_events" | "connector_events" | "zerobus_events" | "voice_judge_results" | "custom";
                source_filter?: string | null | undefined;
                sql_expression?: string | null | undefined;
                unit?: string | null | undefined;
                valid_range_max?: number | null | undefined;
                valid_range_min?: number | null | undefined;
            }[];
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["MetricSettingsRequest"]) => Promise<{
            definitions: {
                active?: boolean | undefined;
                aggregation?: "count" | "sum" | "avg" | "min" | "max" | "count_distinct" | "ratio" | "rate" | undefined;
                ai_labels?: string[] | null | undefined;
                ai_query_endpoint?: string | null | undefined;
                ai_query_prompt?: string | null | undefined;
                ai_schema?: {
                    [x: string]: unknown;
                } | null | undefined;
                applies_to_product_types?: string[] | null | undefined;
                builtin?: boolean | undefined;
                categories?: string[] | null | undefined;
                channel_scope?: "all" | "voice" | "text" | "surface" | "inbound" | "outbound" | undefined;
                custom_source_key?: string | null | undefined;
                description?: (components["schemas"]["DescriptionString"] | null) | undefined;
                event_types: string[];
                extract_path?: string | null | undefined;
                extraction_mode?: "static" | "ai_classify" | "ai_extract" | "ai_query" | "sql_expr" | undefined;
                freshness_sla_minutes?: number | undefined;
                granularity?: "aggregate" | "per_entity" | undefined;
                id?: string | undefined;
                key: string;
                latency_tier?: "streaming" | "near_realtime" | "batch" | undefined;
                metric_type: "numerical" | "categorical" | "boolean";
                model_tier?: "free" | "fast" | "balanced" | "max" | "custom" | undefined;
                name: components["schemas"]["NameString"];
                period_granularity?: "hourly" | "daily" | undefined;
                prompt?: string | null | undefined;
                ratio_denominator_event?: string | null | undefined;
                ratio_numerator_event?: string | null | undefined;
                source: "call_intelligence" | "world_events" | "surface_events" | "emotion_events" | "connector_events" | "zerobus_events" | "voice_judge_results" | "custom";
                source_filter?: string | null | undefined;
                sql_expression?: string | null | undefined;
                unit?: string | null | undefined;
                valid_range_max?: number | null | undefined;
                valid_range_min?: number | null | undefined;
            }[];
        } & import("../index.js").ResponseMetadata>;
    };
    readonly environments: {
        get: () => Promise<{
            environments?: {
                [x: string]: {
                    data_source_id?: string | null | undefined;
                    data_source_overrides?: {
                        [x: string]: unknown;
                    } | undefined;
                    tool_overrides?: {
                        [x: string]: unknown;
                    } | undefined;
                };
            } | undefined;
        } & import("../index.js").ResponseMetadata>;
        update: (body: components["schemas"]["EnvironmentSettingsRequest"]) => Promise<{
            environments?: {
                [x: string]: {
                    data_source_id?: string | null | undefined;
                    data_source_overrides?: {
                        [x: string]: unknown;
                    } | undefined;
                    tool_overrides?: {
                        [x: string]: unknown;
                    } | undefined;
                };
            } | undefined;
        } & import("../index.js").ResponseMetadata>;
    };
}
//# sourceMappingURL=settings.d.ts.map