/**
 * DtsGenerationConfig
 *
 * This is the configuration object for the DTS generation process.
 */
export declare interface DtsGenerationConfig {
  cwd: string
  root: string
  entrypoints: string[]
  outdir: string
  keepComments: boolean
  clean: boolean
  tsconfigPath: string
  verbose: boolean | string[]
  outputStructure?: 'mirror' | 'flat'
}
/**
 * Declaration
 *
 * Represents a parsed declaration from TypeScript source
 */
export declare interface Declaration {
  kind: 'function' | 'variable' | 'interface' | 'type' | 'class' | 'enum' | 'import' | 'export' | 'module'
  name: string
  text: string
  leadingComments?: string[]
  isExported: boolean
  isDefault?: boolean
  typeAnnotation?: string
  modifiers?: string[]
  generics?: string
  extends?: string
  implements?: string[]
  members?: Declaration[]
  parameters?: ParameterDeclaration[]
  returnType?: string
  value?: any
  source?: string
  specifiers?: ImportSpecifier[]
  isTypeOnly?: boolean
  isAsync?: boolean
  isGenerator?: boolean
  overloads?: string[]
  start?: number
  end?: number
}
/**
 * ParameterDeclaration
 */
export declare interface ParameterDeclaration {
  name: string
  type?: string
  optional?: boolean
  rest?: boolean
  defaultValue?: string
}
/**
 * ImportSpecifier
 */
export declare interface ImportSpecifier {
  name: string
  alias?: string
  isType?: boolean
}
/**
 * ProcessingContext
 *
 * Context passed through processing pipeline
 */
export declare interface ProcessingContext {
  filePath: string
  sourceCode: string
  declarations: Declaration[]
  imports: Map<string, Set<string>>
  exports: Set<string>
  usedTypes: Set<string>
}
/**
 * DtsGenerationOption
 *
 * This is the configuration object for the DTS generation process.
 */
export type DtsGenerationOption = Partial<DtsGenerationConfig>
/**
 * DtsGenerationOptions
 *
 * This is the configuration object for the DTS generation process.
 */
export type DtsGenerationOptions = DtsGenerationOption | DtsGenerationOption[]