export type CleanerFunction<T = any> = (key: string, value: T) => boolean;

export interface CleanerOptions<T = any> {
  customCleaner?: CleanerFunction<T>;
  keepFields?: Array<keyof T | string>;
  recursive?: boolean;
  safe?: boolean;
}

export type AnyObject = Record<string, unknown>;

export type FileFormat = 'json' | 'yaml' | 'csv';

export interface ParserOptions {
  delimiter?: string;
  headers?: boolean;
  format?: FileFormat;
}

export interface YAMLNode {
  type: 'scalar' | 'mapping' | 'sequence';
  value: string | YAMLNode[] | { [key: string]: YAMLNode };
  indent: number;
}

export interface CSVOptions {
  delimiter: string;
  headers: boolean;
} 