
import { Styles } from "../styles/types.js";

//#region src/tasty/pipeline/index.d.ts
/**
 * Matches the old StyleResult interface for backward compatibility
 */
interface StyleResult {
  selector: string;
  declarations: string;
  atRules?: string[];
  needsClassName?: boolean;
  rootPrefix?: string;
}
/**
 * Matches the old RenderResult interface for backward compatibility
 */
interface RenderResult {
  rules: StyleResult[];
  className?: string;
}
/**
 * Check if a key is a CSS selector
 */
declare function isSelector(key: string): boolean;
/**
 * Options for renderStyles when using direct selector mode.
 */
interface RenderStylesOptions {
  /**
   * Whether to double the class selector for increased specificity.
   * When true, `.myClass` becomes `.myClass.myClass` for higher specificity.
   *
   * @default false - User-provided selectors are not doubled.
   *
   * Note: This only applies when a classNameOrSelector is provided.
   * When renderStyles returns RenderResult with needsClassName=true,
   * the injector handles doubling automatically.
   */
  doubleSelector?: 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.
 */
declare function renderStyles(styles?: Styles): RenderResult;
declare function renderStyles(styles: Styles | undefined, classNameOrSelector: string, options?: RenderStylesOptions): StyleResult[];
//#endregion
export { RenderResult, StyleResult, isSelector, renderStyles };
//# sourceMappingURL=index.d.ts.map