import { IClientWellKnown } from "matrix-js-sdk/src/matrix";
import { ValidatedServerConfig } from "./utils/ValidatedServerConfig";
export interface IConfigOptions {
    default_server_config?: IClientWellKnown;
    default_server_name?: string;
    default_hs_url?: string;
    default_is_url?: string;
    validated_server_config?: ValidatedServerConfig;
    fallback_hs_url?: string;
    disable_custom_urls?: boolean;
    disable_guests?: boolean;
    disable_login_language_selector?: boolean;
    disable_3pid_login?: boolean;
    brand: string;
    branding?: {
        welcome_background_url?: string | string[];
        auth_header_logo_url?: string;
        auth_footer_links?: {
            text: string;
            url: string;
        }[];
    };
    map_style_url?: string;
    embedded_pages?: {
        welcome_url?: string;
        home_url?: string;
        login_for_welcome?: boolean;
    };
    permalink_prefix?: string;
    update_base_url?: string;
    desktop_builds: {
        available: boolean;
        logo: string;
        url: string;
        url_macos?: string;
        url_win64?: string;
        url_win32?: string;
        url_linux?: string;
    };
    mobile_builds: {
        ios: string | null;
        android: string | null;
        fdroid: string | null;
    };
    mobile_guide_toast?: boolean;
    default_theme?: "light" | "dark" | string;
    default_country_code?: string;
    default_federate?: boolean;
    default_device_display_name?: string;
    setting_defaults?: Record<string, any>;
    integrations_ui_url?: string;
    integrations_rest_url?: string;
    integrations_widgets_urls?: string[];
    show_labs_settings: boolean;
    features?: Record<string, boolean>;
    bug_report_endpoint_url?: string;
    uisi_autorageshake_app?: string;
    sentry?: {
        dsn: string;
        environment?: string;
    };
    widget_build_url?: string;
    widget_build_url_ignore_dm?: boolean;
    audio_stream_url?: string;
    jitsi?: {
        preferred_domain: string;
    };
    jitsi_widget?: {
        skip_built_in_welcome_screen?: boolean;
    };
    voip?: {
        obey_asserted_identity?: boolean;
    };
    element_call: {
        url?: string;
        guest_spa_url?: string;
        use_exclusively?: boolean;
        participant_limit?: number;
        brand?: string;
    };
    logout_redirect_url?: string;
    sso_immediate_redirect?: boolean;
    sso_redirect_options?: ISsoRedirectOptions;
    custom_translations_url?: string;
    report_event?: {
        admin_message_md: string;
    };
    room_directory?: {
        servers: string[];
    };
    posthog?: {
        project_api_key: string;
        api_host: string;
    };
    analytics_owner?: string;
    privacy_policy_url?: string;
    enable_presence_by_hs_url?: Record<string, boolean>;
    terms_and_conditions_links?: {
        url: string;
        text: string;
    }[];
    help_url: string;
    help_encryption_url: string;
    latex_maths_delims?: {
        inline?: {
            left?: string;
            right?: string;
            pattern?: {
                tex?: string;
                latex?: string;
            };
        };
        display?: {
            left?: string;
            right?: string;
            pattern?: {
                tex?: string;
                latex?: string;
            };
        };
    };
    sync_timeline_limit?: number;
    dangerously_allow_unsafe_and_insecure_passwords?: boolean;
    voice_broadcast?: {
        chunk_length?: number;
        max_length?: number;
    };
    user_notice?: {
        title: string;
        description: string;
        show_once?: boolean;
    };
    feedback: {
        existing_issues_url: string;
        new_issue_url: string;
    };
    /**
     * Configuration for OIDC issuers where a static client_id has been issued for the app.
     * Otherwise dynamic client registration is attempted.
     * The issuer URL must have a trailing `/`.
     * OPTIONAL
     */
    oidc_static_clients?: {
        [issuer: string]: {
            client_id: string;
        };
    };
    /**
     * Configuration for OIDC dynamic registration where a static OIDC client is not configured.
     */
    oidc_metadata?: {
        client_uri?: string;
        logo_uri?: string;
        tos_uri?: string;
        policy_uri?: string;
        contacts?: string[];
    };
}
export interface ISsoRedirectOptions {
    immediate?: boolean;
    on_welcome_page?: boolean;
    on_login_page?: boolean;
}
