import { FilterPattern } from 'unplugin-utils';

type DepKind = 'dependencies' | 'devDependencies' | 'peerDependencies';
interface Options {
    root?: string;
    include?: FilterPattern;
    exclude?: FilterPattern;
    ignore?: string[] | Partial<Record<DepKind, string[]>>;
    /**
     * @default 'warning'
     */
    level?: 'warning' | 'error';
    /**
     * @default ['dependencies', 'peerDependencies']
     */
    depKinds?: Array<DepKind>;
}
type Overwrite<T, U> = Pick<T, Exclude<keyof T, keyof U>> & U;
type OptionsResolved = Overwrite<Required<Options>, Pick<Options, 'root'>>;
declare function resolveOptions(options: Options): OptionsResolved;

export { type DepKind as D, type Options as O, resolveOptions as r };
