/**
 * @file onMediaTokens.ts
 * @input Theme token values from defineTheme
 * @output Default on-dark / on-light token overrides for MediaTheme
 * @position Theme system utility; consumed by defineTheme and generateThemeRules
 *
 * Generates semantic token overrides for content rendered on inverted surfaces.
 * "onDark" = content on a dark background (light text, white-tinted interactions)
 * "onLight" = content on a light background (dark text, black-tinted interactions)
 *
 * The primary mechanism is `color-scheme` — setting `color-scheme: dark` on the
 * media element makes all `light-dark()` tokens resolve to their dark-side values.
 * Only a small set of tokens need explicit overrides (text/icon primary use
 * `var(--color-on-dark)` instead of the dark-mode grey, accent collapses to
 * on-color, etc.).
 *
 * Themes can provide additional token and component overrides via the
 * `onDark`/`onLight` fields in `defineTheme()`.
 */
import type { TokenValue, ComponentStyleMap } from './defineTheme';
/**
 * On-media theme overrides — same shape as the main theme but scoped
 * to a surface luminance context.
 */
export interface OnMediaOverrides {
    /** Token overrides for this surface context */
    tokens?: Partial<Record<string, TokenValue>>;
    /** Component style overrides for this surface context */
    components?: ComponentStyleMap;
}
/**
 * Resolved on-media overrides stored on DefinedTheme.
 * @internal
 */
export interface ResolvedOnMedia {
    /** Resolved token CSS values */
    tokens: Record<string, string>;
    /** Component style overrides (passthrough from input) */
    components?: ComponentStyleMap;
}
/**
 * Default token overrides for content on a dark surface.
 *
 * Most tokens work automatically via `color-scheme: dark` which flips
 * `light-dark()` values. These overrides handle the tokens that need
 * different values on an inverted surface vs a dark page background.
 */
export declare const defaultOnDarkTokens: Record<string, string>;
/**
 * Default token overrides for content on a light surface.
 */
export declare const defaultOnLightTokens: Record<string, string>;
/**
 * Resolve on-media overrides: merge user tokens with defaults,
 * pass through component overrides.
 *
 * `base` is the already-resolved surface of a theme being extended. It sits
 * between the defaults and this theme's own input, so a child theme inherits
 * the surface customizations of the theme it extends instead of silently
 * reverting them to the defaults.
 */
export declare function resolveOnMedia(surface: 'dark' | 'light', input?: OnMediaOverrides, base?: ResolvedOnMedia): ResolvedOnMedia;
//# sourceMappingURL=onMediaTokens.d.ts.map