export declare const LOCAL_STORAGE_KEY = "charcoal-theme"; export declare const DEFAULT_ROOT_ATTRIBUTE = "theme"; /** * 文字列が英数字_-のみで構成されているか検証する。不正な文字列ならエラーを投げる * @param key 検証するキー */ export declare function assertKeyString(key: string): void; /** * `` のような設定を行うデフォルトのセッター */ export declare const themeSetter: (attr?: string) => (theme: string | undefined) => void; /** * `` にマッチするセレクタを生成する */ export declare function themeSelector(theme: T, attr?: S): `:root[data-theme='${T}']` | `:root[data-${S}='${T}']`; /** * prefers-color-scheme を利用する media クエリを生成する */ export declare function prefersColorScheme(theme: T): `@media (prefers-color-scheme: ${T})`; /** * LocalStorageからテーマの情報を取得して、変化時にテーマをセットするhooks */ export declare function useThemeSetter({ key, setter, }?: { key?: string; setter?: (theme: string | undefined) => void; }): void; /** * 同期的にLocalStorageからテーマを取得するヘルパ */ export declare function getThemeSync(key?: string): string | null; /** * LocalStorage, prefers-color-scheme からテーマの情報を取得して、現在のテーマを返すhooks * * `dark` `light` という名前だけは特別扱いされていて、prefers-color-schemeにマッチした場合に返ります */ export declare const useTheme: (localStorageKey?: string) => readonly ["light" | "dark" | undefined, (value: "light" | "dark" | undefined) => void, boolean]; export declare function useLocalStorage(key: string, defaultValue?: () => T): readonly [T | undefined, (value: T | undefined) => void, boolean]; export declare function useMedia(query: string): boolean | undefined; //# sourceMappingURL=themeHelper.d.ts.map