import { SpawnOptionsWithoutStdio } from 'node:child_process';
import { ReporterEvents, ReporterPlugin, PokuPlugin, InspectCLIResult } from './_shared.cjs';
export { PluginContext, ScopeHook, onSigint } from './_shared.cjs';
import 'node:assert';

declare const createReporter: (events: ReporterEvents) => ReporterPlugin;

declare const findFileFromStack: (stack: string | undefined, options?: {
    skipInternal?: boolean;
}) => string;

declare const reporter: Record<string, ReporterPlugin>;

/** 🐷 Auxiliary function to define a Poku plugin */
declare const definePlugin: (plugin: PokuPlugin) => PokuPlugin;
/** 🐽 Auxiliary function to inspect a Poku CLI execution during plugin development */
declare const inspectPoku: (options: {
    command: string;
    spawnOptions?: SpawnOptionsWithoutStdio;
    bin?: string;
}) => Promise<InspectCLIResult>;

export { InspectCLIResult, PokuPlugin, ReporterEvents, ReporterPlugin, createReporter, definePlugin, findFileFromStack, inspectPoku, reporter as reporterRegistry };
