import type { ClassNameStyle as BaseClassNameStyle, Theme as BaseTheme } from '@c15t/ui/theme'; import type { CSSProperties } from 'react'; import type { AllThemeKeys } from './style-keys'; export type { ColorTokens, ComponentSlots, CSSVariables, MotionTokens, RadiusTokens, ShadowTokens, SlotStyle, SpacingTokens, TypographyTokens, } from '@c15t/ui/theme'; /** * Represents CSS properties with optional CSS variables. * @public */ export type CSSPropertiesWithVars> = CSSProperties & Partial; /** * Represents a style configuration that can include both inline styles and class names. * @public */ export interface ClassNameStyle> extends Omit, 'style'> { /** CSS properties to be applied inline to the component. */ style?: CSSPropertiesWithVars; } /** * Represents a style value that can be either a class name string or a {@link ClassNameStyle} object. * @public */ export type ThemeValue> = string | ClassNameStyle; /** * Extends styling options with a reference to a global theme key. * @public */ export interface ExtendThemeKeys> extends ClassNameStyle { /** Optional key to reference a specific part of the global theme. */ themeKey?: AllThemeKeys; } /** * Complete theme configuration for c15t consent components (v2). * @public */ export interface Theme extends Omit { /** Semantic button styling for consent actions. */ consentActions?: BaseTheme['consentActions']; /** Component-specific style overrides. */ slots?: BaseTheme['slots']; } /** * Helper function to define a theme with full TypeScript autocompletion and validation. * @public */ export declare function defineTheme(theme: ThemeType): ThemeType;