/**
 * Printers related to Svelte **attribute**-like related AST nodes only.
 * @module svelte-ast-print/template/attribute-like
 */
import type { AST as SV } from "svelte/compiler";
import type { PrintOptions } from "../_internal/option.ts";
import { type Result } from "../_internal/shared.ts";
/**
 * @see {@link https://svelte.dev/docs/svelte/animate}
 *
 * @example with expression
 * ```svelte
 * animate:name={expression}
 * ```
 *
 * @example shorthand - when variable - expression as identifier - name is same
 * ```svelte
 * animate:name
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printAnimateDirective(n: SV.AnimateDirective, opts?: Partial<PrintOptions>): Result<SV.AnimateDirective>;
/**
 * @see {@link https://svelte.dev/docs/svelte/bind}
 *
 * @example with expression
 * ```svelte
 * bind:name={variable}
 * ```
 *
 * @example shorthand - when variable - expression as identifier - name is same
 * ```svelte
 * bind:name
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printBindDirective(n: SV.BindDirective, opts?: Partial<PrintOptions>): Result<SV.BindDirective>;
/**
 * @see {@link https://svelte.dev/docs/svelte/class}
 *
 * @example with expression
 * ```svelte
 * class:name={expression}
 * ```
 *
 * @example shorthand - when variable - expression as identifier - name is same
 * ```svelte
 * class:name
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printClassDirective(n: SV.ClassDirective, opts?: Partial<PrintOptions>): Result<SV.ClassDirective>;
/**
 * @deprecated Will be removed from Svelte `v6` {@link https://svelte.dev/docs/svelte/legacy-slots#Passing-data-to-slotted-content}
 *
 * @example with expression
 * ```svelte
 * let:name={expression}
 * ```
 *
 * @example shorthand - when variable - expression as identifier - name is same
 * ```svelte
 * let:name
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printLetDirective(n: SV.LetDirective, opts?: Partial<PrintOptions>): Result<SV.LetDirective>;
/**
 * @deprecated Will be removed from Svelte `v6` {@link https://svelte.dev/docs/svelte/legacy-on}
 *
 * @example without modifiers
 * ```svelte
 * on:name={expression}
 * ```
 *
 * @example with modifiers
 * ```svelte
 * on:name|modifiers={handler}
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printOnDirective(n: SV.OnDirective, opts?: Partial<PrintOptions>): Result<SV.OnDirective>;
/**
 * @see {@link https://svelte.dev/docs/svelte/style}
 *
 * @example with expression tag
 * ```svelte
 * style:name={value}
 * ```
 *
 * @example with text expression
 * ```svelte
 * style:name="text"
 * ```
 *
 * @example without expression
 * ```svelte
 * style:name
 * ```
 *
 * @example with modifiers
 * ```svelte
 * style:name|modifiers="text"
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printStyleDirective(n: SV.StyleDirective, opts?: Partial<PrintOptions>): Result<SV.StyleDirective>;
/**
 * @see {@link https://svelte.dev/docs/svelte/transition}
 * @see {@link https://svelte.dev/docs/svelte/in-and-out}
 *
 * @example without expression
 * ```svelte
 * transition|in|out:name
 * ```
 *
 * @example with expression
 * ```svelte
 * transition|in|out:name={expression}
 * ```
 *
 * @example with global modifier and without expression
 * ```svelte
 * transition|in|out:name|global
 * ```
 *
 * @example with global modifier and with expression
 * ```svelte
 * transition|in|out:name|global={expression}
 * ```
 *
 * @example with local modifier and without expression
 * ```svelte
 * transition|in|out:name|local
 * ```
 *
 * @example with local modifier and with expression
 * ```svelte
 * transition|in|out:name|local={expression}
 * ```
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printTransitionDirective(n: SV.TransitionDirective, opts?: Partial<PrintOptions>): Result<SV.TransitionDirective>;
/**
 * @example with expression
 * ```svelte
 * use:name={expression}
 * ```
 *
 * @example shorthand - when variable - expression as identifier - name is same
 * ```svelte
 * use:name
 * ```
 * @see {@link https://svelte.dev/docs/svelte/use}
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printUseDirective(n: SV.UseDirective, opts?: Partial<PrintOptions>): Result<SV.UseDirective>;
/**
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printAttributeLike(n: SV.AttributeLike, opts?: Partial<PrintOptions>): Result<SV.AttributeLike>;
/**
 * @see {@link https://svelte.dev/docs/svelte/basic-markup#Element-attributes}
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printAttribute(n: SV.Attribute, opts?: Partial<PrintOptions>): Result<SV.Attribute>;
/**
 * @see {@link https://svelte.dev/docs/svelte/basic-markup#Component-props}
 *
 * @since 1.0.0
 * @__NO_SIDE_EFFECTS__
 */
export declare function printSpreadAttribute(n: SV.SpreadAttribute, opts?: Partial<PrintOptions>): Result<SV.SpreadAttribute>;
//# sourceMappingURL=attribute-like.d.ts.map