import React from "react";
import { ServicePolicyPair } from "../../../../../Terms";
import { ThirdPartyIdentifier } from "../../../../../AddThreepid";
import { SDKContext } from "../../../../../contexts/SDKContext";
interface IProps {
    closeSettingsFn: () => void;
}
interface IState {
    language: string;
    spellCheckEnabled?: boolean;
    spellCheckLanguages: string[];
    haveIdServer: boolean;
    idServerHasUnsignedTerms: boolean;
    requiredPolicyInfo: {
        hasTerms: false;
        policiesAndServices: null;
        agreedUrls: null;
        resolve: null;
    } | {
        hasTerms: boolean;
        policiesAndServices: ServicePolicyPair[];
        agreedUrls: string[];
        resolve: (values: string[]) => void;
    };
    emails: ThirdPartyIdentifier[];
    msisdns: ThirdPartyIdentifier[];
    loading3pids: boolean;
    canChangePassword: boolean;
    idServerName?: string;
    externalAccountManagementUrl?: string;
    canMake3pidChanges: boolean;
}
export default class GeneralUserSettingsTab extends React.Component<IProps, IState> {
    static contextType: React.Context<import("../../../../../contexts/SDKContext").SdkContextClass>;
    context: React.ContextType<typeof SDKContext>;
    private readonly dispatcherRef;
    constructor(props: IProps, context: React.ContextType<typeof SDKContext>);
    componentDidMount(): Promise<void>;
    componentWillUnmount(): void;
    private onAction;
    private onEmailsChange;
    private onMsisdnsChange;
    private getCapabilities;
    private getThreepidState;
    private checkTerms;
    private onLanguageChange;
    private onSpellCheckLanguagesChange;
    private onSpellCheckEnabledChange;
    private onPasswordChangeError;
    private onPasswordChanged;
    private onDeactivateClicked;
    private renderAccountSection;
    private renderLanguageSection;
    private renderSpellCheckSection;
    private renderDiscoverySection;
    private renderManagementSection;
    private renderIntegrationManagerSection;
    render(): React.ReactNode;
}
export {};
