/**
 * Common type definitions for the theme-cli package
 * @module types
 */

/**
 * Options for initializing a Shopify theme
 */
export interface ThemeInitOptions {
  /**
   * The name of the theme directory to create
   * @default "my-theme"
   */
  name?: string;

  /**
   * Whether to overwrite an existing directory
   * @default false
   */
  force?: boolean;

  /**
   * Base directory to place the theme in
   * @default process.cwd()
   */
  outputDir?: string;

  /**
   * Enable debug mode with verbose logging
   * @default false
   */
  debug?: boolean;
}

/**
 * Response type options for HTTP requests
 */
export type ResponseType =
  | "arraybuffer"
  | "blob"
  | "document"
  | "json"
  | "text"
  | "stream";

/**
 * Logger interface defining the structure of a logger object
 */
export interface Logger {
  /**
   * Log an informational message
   */
  info(message: string): void;

  /**
   * Log a success message
   */
  success(message: string): void;

  /**
   * Log a warning message
   */
  warn(message: string): void;

  /**
   * Log an error message
   */
  error(message: string): void;
}
