/**
 * @file Spinner-style registry — exposes the union of the standard
 *   `cli-spinners` collection and Socket's custom `socket` pulse animation,
 *   plus a lazy default-spinner singleton. The registry itself is built once
 *   and memoized; `getDefaultSpinner()` defers `Spinner()` construction until
 *   first call so module initialization stays cheap.
 */
import type { SpinnerInstance, SpinnerStyle } from './types';
/**
 * Get available CLI spinner styles or a specific style by name. Extends the
 * standard cli-spinners collection with Socket custom spinners.
 *
 * Custom spinners: - `socket` (default): Socket pulse animation with sparkles
 * and lightning.
 *
 * @example
 *   ;```ts
 *   // Get all available spinner styles
 *   const allSpinners = getCliSpinners()
 *
 *   // Get specific style
 *   const socketStyle = getCliSpinners('socket')
 *   const dotsStyle = getCliSpinners('dots')
 *   ```
 *
 * @param styleName - Optional name of specific spinner style to retrieve.
 *
 * @returns Specific spinner style if name provided, all styles if omitted,
 *   `undefined` if style not found.
 *
 * @see https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json
 */
export declare function getCliSpinners(styleName?: string | undefined): SpinnerStyle | Record<string, SpinnerStyle> | undefined;
/**
 * Get the default spinner instance. Lazily creates the spinner to avoid
 * circular dependencies during module initialization. Reuses the same instance
 * across calls.
 *
 * @example
 *   ;```ts
 *   import { getDefaultSpinner } from '@socketsecurity/lib/spinner/registry'
 *
 *   const spinner = getDefaultSpinner()
 *   spinner.start('Loading…')
 *   ```
 *
 * @returns Shared default spinner instance
 */
export declare function getDefaultSpinner(): SpinnerInstance;
