/**
 * Tasty Style Rendering Pipeline
 *
 * This is the main entrypoint for the new pipeline implementation.
 * It implements the complete flow from style objects to CSS rules.
 *
 * Pipeline stages:
 * 1. PARSE CONDITIONS - Parse state keys into ConditionNode trees
 * 2. BUILD EXCLUSIVE CONDITIONS - AND with negation of higher-priority conditions
 * 3. SIMPLIFY CONDITIONS - Apply boolean algebra, detect contradictions
 * 4. GROUP BY HANDLER - Collect styles per handler, compute combinations
 * 5. COMPUTE CSS VALUES - Call handlers to get CSS declarations
 * 6. MERGE BY VALUE - Merge rules with identical CSS output
 * 7. MATERIALIZE CSS - Convert conditions to CSS selectors + at-rules
 */
import { Styles } from '../styles/types';
import { CSSRule } from './materialize';
/**
 * Matches the old StyleResult interface for backward compatibility
 */
export interface StyleResult {
    selector: string;
    declarations: string;
    atRules?: string[];
    needsClassName?: boolean;
    rootPrefix?: string;
}
/**
 * Matches the old RenderResult interface for backward compatibility
 */
export interface RenderResult {
    rules: StyleResult[];
    className?: string;
}
export interface PipelineResult {
    rules: CSSRule[];
    className?: string;
}
/**
 * Render styles using the new pipeline.
 *
 * This is the main entrypoint that implements the complete flow.
 */
export declare function renderStylesPipeline(styles?: Styles, className?: string): PipelineResult;
/**
 * Clear the pipeline cache (for testing)
 */
export declare function clearPipelineCache(): void;
/**
 * Check if a key is a CSS selector
 */
export declare function isSelector(key: string): boolean;
/**
 * Render styles to CSS rules.
 *
 * When called without classNameOrSelector, returns RenderResult with needsClassName=true.
 * When called with a selector/className string, returns StyleResult[] for direct injection.
 */
export declare function renderStyles(styles?: Styles): RenderResult;
export declare function renderStyles(styles: Styles | undefined, classNameOrSelector: string): StyleResult[];
export type { ConditionNode } from './conditions';
export { and, or, not, trueCondition, falseCondition } from './conditions';
export { parseStateKey } from './parseStateKey';
export { simplifyCondition } from './simplify';
export { buildExclusiveConditions } from './exclusive';
export { conditionToCSS } from './materialize';
export type { CSSRule } from './materialize';
