import { ComputedRef, InjectionKey, MaybeRefOrGetter, Ref } from 'vue';

/** App-wide localizable strings baked into shipped components. Flat by design. */
export interface TvuLocale {
    previous: string;
    next: string;
    /** Noun used in the page-size selector, e.g. "10/Page". */
    pageUnit: string;
    close: string;
    clearValue: string;
    removeOption: string;
    decrement: string;
    increment: string;
}
/** English defaults — byte-equal to the previously-hardcoded strings. Frozen. */
export declare const defaultLocale: Readonly<TvuLocale>;
/** Injection key for consumers who prefer `app.provide(TVU_LOCALE_KEY, ref({...}))`. */
export declare const TVU_LOCALE_KEY: InjectionKey<Ref<Partial<TvuLocale>>>;
/**
 * Provide a locale from a component setup() at (or near) the app root.
 * Accepts a plain object, a ref, or a getter — normalized to a ref so a
 * reactive source propagates to every consuming component.
 */
export declare function provideTvuLocale(locale: MaybeRefOrGetter<Partial<TvuLocale>>): void;
/**
 * Read the effective locale inside a component. Returns a ComputedRef of the
 * full dictionary: the injected partial merged over the English defaults.
 */
export declare function useLocale(): ComputedRef<TvuLocale>;
