import { type ComputedRef, type InjectionKey, type Ref } from 'vue';
import type { CSSVariablesResolver } from './css-variables';
import type { MantineColorScheme, MantineTheme } from './theme.types';
export interface MantineStylesTransform {
    sx?: () => (sx: any) => string;
    styles?: () => (styles: any, payload: any) => Record<string, string>;
}
export interface MantineContextValue {
    colorScheme: Ref<MantineColorScheme>;
    setColorScheme: (colorScheme: MantineColorScheme) => void;
    clearColorScheme: () => void;
    getRootElement: () => HTMLElement | undefined;
    classNamesPrefix: string;
    getStyleNonce?: () => string | undefined;
    cssVariablesResolver?: CSSVariablesResolver;
    cssVariablesSelector: string;
    withStaticClasses: boolean;
    headless?: boolean;
    stylesTransform?: MantineStylesTransform;
    env?: 'default' | 'test';
    deduplicateInlineStyles?: boolean;
}
export declare const MantineContextKey: InjectionKey<MantineContextValue>;
export declare const MantineThemeKey: InjectionKey<ComputedRef<MantineTheme>>;
export declare function provideMantineContext(value: MantineContextValue): void;
export declare function useMantineContext(): MantineContextValue;
export declare function useMantineCssVariablesResolver(): CSSVariablesResolver | undefined;
export declare function useMantineClassNamesPrefix(): string;
export declare function useMantineStyleNonce(): (() => string | undefined) | undefined;
export declare function useMantineWithStaticClasses(): boolean;
export declare function useMantineIsHeadless(): boolean | undefined;
export declare function useMantineEnv(): "default" | "test";
export declare function useMantineDeduplicateInlineStyles(): boolean;
export declare function createProviderColorScheme(defaultColorScheme: MantineColorScheme): {
    colorScheme: Ref<MantineColorScheme, MantineColorScheme>;
    setColorScheme: (value: MantineColorScheme) => void;
    clearColorScheme: () => void;
};
export declare function provideMantineTheme(theme: ComputedRef<MantineTheme>): void;
export declare function resolveColorScheme(colorScheme: 'light' | 'dark' | 'auto'): 'light' | 'dark';
export declare function useMantineColorScheme(): {
    colorScheme: Ref<MantineColorScheme, MantineColorScheme>;
    setColorScheme: (colorScheme: MantineColorScheme) => void;
    clearColorScheme: () => void;
};
export interface UseComputedColorSchemeOptions {
    getInitialValueInEffect?: boolean;
}
export declare function useComputedColorScheme(defaultValue?: 'light' | 'dark', options?: UseComputedColorSchemeOptions): ComputedRef<"light" | "dark">;
