import type { IRenderer } from 'fela'; export type StyleNodeAttributes = { media?: string; support?: string; container?: string; type: 'KEYFRAME' | 'RULE' | 'CLEAR'; }; export type SortMediaQueryFn = (a: string, b: string) => number; export type RendererParam = { direction: 'ltr' | 'rtl'; disableAnimations: boolean; displayName: string; sanitizeCss: boolean; }; export type ICSSInJSStyle = any; export type RendererRenderRule = (styles: ICSSInJSStyle, param: RendererParam) => string; export type Renderer = { registerUsage: () => void; unregisterUsage: () => void; insertPendingRules: () => void; renderRule: RendererRenderRule; }; export type CreateRenderer = (targetDocument?: Document) => Renderer; export type FelaRendererStyleNodeAttributes = Record; export type FelaRendererRuleChange = { type: 'RULE'; className: string; selector: string; declaration: string; pseudo: string; media: string; support: string; container: string; }; export type FelaRendererChange = FelaRendererRuleChange | { type: 'CLEAR'; } | { type: 'KEYFRAME'; keyframe: string; media?: string; support?: string; }; export type FelaRenderer = IRenderer & { cache: Record; selectorPrefix?: string; ruleOrder: any; scoreIndex: any; sortMediaQuery: SortMediaQueryFn; nodes: Record; getNextRuleIdentifier: () => string; filterClassName: () => boolean; _emitChange: (change: FelaRendererChange) => void; _renderStyleToClassNames({ _className, ...style }: ICSSInJSStyle & { _className: string; }, pseudo?: string, media?: string, support?: string): string; styleNodeAttributes: FelaRendererStyleNodeAttributes; _pendingChanges: Set; }; export type FelaRendererParam = Omit & { theme: { direction: RendererParam['direction']; }; };