import type { Property } from '../analytics/types.js'; export type { Property }; /** * Standard size scale for brand components */ export type BrandSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'; /** * Size mapping in pixels */ export declare const BRAND_SIZE_MAP: Record; /** * Animation variant for brand marks */ export type AnimationType = 'none' | 'reveal' | 'pulse' | 'assemble'; /** * Common props for brand mark components */ export interface BrandMarkProps { /** Size of the mark */ size?: BrandSize | number; /** Whether to animate on mount */ animate?: boolean; /** Animation type */ animationType?: AnimationType; /** Additional CSS classes */ class?: string; } /** * Props for property-specific marks */ export interface PropertyMarkProps extends BrandMarkProps { /** Which property to display */ property: Property; /** Display variant */ variant?: 'full' | 'abbreviated' | 'icon'; /** Whether to include the cube mark */ showCube?: boolean; } /** * Extended size scale for wordmark (includes display sizes) */ export type WordmarkSize = BrandSize | 'display' | 'display-xl'; /** * Props for wordmark component */ export interface WordmarkProps { /** Size of the wordmark - maps to Canon typography scale */ size?: WordmarkSize; /** Optional tagline displayed below the wordmark */ tagline?: string; /** Layout variant */ layout?: 'inline' | 'stacked' | 'split'; /** Whether to animate on mount */ animate?: boolean; /** Animation type */ animationType?: AnimationType; /** Custom stagger delay per word (ms) */ staggerDelay?: number; /** Additional CSS classes */ class?: string; } /** * Props for loading states */ export interface LoaderProps { /** Size of the loader */ size?: BrandSize | number; /** Loading animation variant */ variant?: 'spin' | 'pulse' | 'assemble'; /** Optional loading message */ message?: string; } /** * Props for skeleton placeholders */ export interface SkeletonProps { /** Number of text lines */ lines?: number; /** Whether to show a header skeleton */ showHeader?: boolean; /** Whether to show an image skeleton */ showImage?: boolean; } /** * Props for OG image generation */ export interface OGImageProps { /** Page title */ title: string; /** Optional subtitle */ subtitle?: string; /** Property for styling */ property?: Property; /** Background variant */ variant?: 'default' | 'dark' | 'gradient'; } /** * Isometric cube face identifiers * Following the existing visual/isometric.ts conventions */ export type CubeFace = 'top' | 'left' | 'right'; /** * Cube face opacity values per Canon * Top: 1.0 (brightest), Left: 0.6, Right: 0.3 (darkest) */ export declare const CUBE_FACE_OPACITY: Record;