import { LoginProps, SnackbarState, UserInfo } from '../interface';
export interface ILoginConfig {
    SDKAppID: number;
    userID: string;
    userSig: string;
    TIMPush?: any;
    pushConfig?: any;
    TUIOfflinePush?: any;
    offlinePushConfig?: any;
    useUploadPlugin?: boolean;
    useProfanityFilterPlugin?: boolean;
    unlimitedAVChatRoom?: boolean;
    scene?: string;
    fileUploadProxy?: string;
    fileDownloadProxy?: string;
    proxyServer?: string;
    devMode?: boolean;
    framework?: string;
    token?: string;
}
interface ILoginProps extends LoginProps {
    children?: React.ReactNode;
}
interface ILoginContextValue {
    snackbarConfig: SnackbarState;
    isLogin: boolean;
    userInfo: UserInfo;
    token: string;
    setSnackbarConfig: (config: SnackbarState) => void;
    setUserInfo: (userInfo: UserInfo) => void;
    setIsLogin: (isLogin: boolean) => void;
    setToken: (token: string) => void;
    login: (loginInfo: ILoginConfig) => void;
    logout: () => void;
}
declare function LoginProvider(props: ILoginProps): JSX.Element;
declare function useLoginContext(): ILoginContextValue;
export { useLoginContext, LoginProvider };
export type { ILoginProps };
