/**
 * A spinner instance that renders frames in real-time
 */
export interface Spinner {
    /** Advance the animation and return the rendered frame */
    tick(): string;
    /** Frame interval in milliseconds */
    frameInterval: number;
    /** Theme name */
    name: string;
    /** Default color scheme for this spinner */
    defaultColor: ColorScheme;
}
/**
 * Spinner theme metadata (for listing available themes)
 */
export interface SpinnerThemeInfo {
    name: string;
    description: string;
}
type ColorScheme = 'guild' | 'white' | 'cyan' | 'rainbow';
/**
 * Get list of available spinner themes
 */
export declare function getSpinnerThemeList(): SpinnerThemeInfo[];
/**
 * Create a spinner instance for the active theme
 * If GUILD_SPINNER_THEME env var is set, uses that theme.
 * Otherwise, defaults to wave spinner with guild colors.
 */
export declare function createSpinner(): Spinner;
/**
 * Create a random spinner from the available themes
 */
export declare function createRandomSpinner(): Spinner;
/**
 * Create a spinner by theme name
 */
export declare function createSpinnerByName(name: string): Spinner;
/**
 * @deprecated Use createSpinner() instead
 * Legacy interface for backwards compatibility
 */
export interface SpinnerTheme {
    name: string;
    description: string;
    generateFrame: (frameIndex: number) => string;
    frameCount: number;
    frameInterval: number;
}
/**
 * @deprecated Use createSpinner() instead
 */
export declare function getSpinnerThemes(): Map<string, SpinnerTheme>;
/**
 * @deprecated Use createSpinner() instead
 */
export declare function getActiveTheme(): SpinnerTheme;
/**
 * @deprecated Use createSpinner() instead
 */
export declare function generateSpinnerFrames(): string[];
export {};
//# sourceMappingURL=spinners.d.ts.map