import type { MaybeRef } from '@vueuse/core';
import type { App, Ref } from 'vue';
import type { ConfigProviderContext } from './useGlobalProvider';
export declare const keysOf: <T>(arr: T) => (keyof T)[];
export declare function useGlobalConfig<K extends keyof ConfigProviderContext, D extends ConfigProviderContext[K]>(key: K, defaultValue?: D): Ref<Exclude<ConfigProviderContext[K], undefined> | D>;
export declare function useGlobalConfig(): Ref<ConfigProviderContext>;
export declare const provideGlobalConfig: (config: MaybeRef<ConfigProviderContext>, app?: App<any> | undefined, global?: boolean) => import("vue").ComputedRef<Partial<{
    appId?: unknown;
    userInfo?: unknown;
    permissions?: unknown;
    components?: unknown;
    i18nFun?: unknown;
    uploadVarsJson?: unknown;
} & {
    permissions: Record<string, any>;
    components: Record<string, any>;
    uploadVarsJson: string;
} & {
    appId?: string | undefined;
    userInfo?: Record<string, any> | undefined;
    i18nFun?: {
        t: {
            (key: string): string;
            (key: string, locale: string): string;
            (key: string, locale: string, list: unknown[]): string;
            (key: string, locale: string, named: Record<string, unknown>): string;
            (key: string, list: unknown[]): string;
            (key: string, named: Record<string, unknown>): string;
        };
        locale?: string | undefined;
    } | undefined;
}>> | undefined;
