/**
 * Printers related to CSS **selector** related AST nodes only.
 * @module svelte-ast-print/css/selector
 */
import type { AST as SV } from "svelte/compiler";
import type { PrintOptions } from "../_internal/option.js";
import { type Result } from "../_internal/shared.js";
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_selectors/Selectors_and_combinators#combinators}
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSCombinator(n: SV.CSS.Combinator, opts?: Partial<PrintOptions>): Result<SV.CSS.Combinator>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSSimpleSelector(n: SV.CSS.SimpleSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.SimpleSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors}
 *
 * @example syntax
 * ```css
 * [name<?matcher><?"value"> flags?]
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSAttributeSelector(n: SV.CSS.AttributeSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.AttributeSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/Class_selectors}
 *
 * @example simple
 * ```css
 * .class_name { style properties }
 * ```
 *
 * @example equivalent
 * ```css
 * [class~=class_name] { style properties }
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSClassSelector(n: SV.CSS.ClassSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.ClassSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/ID_selectors}
 *
 * @example pattern
 * ```css
 * #name
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSIdSelector(n: SV.CSS.IdSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.IdSelector>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSNestingSelector(n: SV.CSS.NestingSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.NestingSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-classes}
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSPseudoClassSelector(n: SV.CSS.PseudoClassSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.PseudoClassSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/Pseudo-elements}
 *
 * @since 1.0.0
 *
 * @__NO_SIDE_EFFECTS__
 *
 * > [!WARNING]
 * > It doesn't support args, e.g. `::part()` or  `::slotted()`
 */
export declare function printCSSPseudoElementSelector(n: SV.CSS.PseudoElementSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.PseudoElementSelector>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSRelativeSelector(n: SV.CSS.RelativeSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.RelativeSelector>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSTypeSelector(n: SV.CSS.TypeSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.TypeSelector>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/:nth-child}
 *
 * @example pattern
 * ```css
 * :nth-child(<nth> [of <complex-selector-list>]?) { }
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSNth(n: SV.CSS.Nth, opts?: Partial<PrintOptions>): Result<SV.CSS.Nth>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSPercentage(n: SV.CSS.Percentage, opts?: Partial<PrintOptions>): Result<SV.CSS.Percentage>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSSelectorList(n: SV.CSS.SelectorList, opts?: Partial<PrintOptions>): Result<SV.CSS.SelectorList>;
/**
 * @see {@link https://developer.mozilla.org/en-US/docs/Web/CSS/Complex_selectors}
 *
 * @example simple
 * ```css
 * .class_name { style properties }
 * ```
 *
 * @example equivalent
 * ```css
 * [class~=class_name] { style properties }
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printCSSComplexSelector(n: SV.CSS.ComplexSelector, opts?: Partial<PrintOptions>): Result<SV.CSS.ComplexSelector>;
//# sourceMappingURL=selector.d.ts.map