import { $ as _$, ProcessPromise, type Options } from 'zx';
export * from 'zx';
export * from './goods.ts';
type Callback = (...args: any[]) => any;
export declare function ctx<C extends Callback>(cb: C, ref?: $Extra): ReturnType<C>;
type Zx = typeof _$;
type Extra = {
    trim?: boolean;
    raw: Zx;
    silent: Zx;
    o: Zx;
    opt: Zx;
};
type $Extra = Zx & Extra;
export declare const $: $Extra;
type DropFirst<T extends unknown[]> = T extends [any, ...infer U] ? U : never;
type HookCallback = (this: HookProcess, p: HookProcess, ...args: any[]) => any;
type HookOptions = Partial<Record<any, any> & Options>;
interface HookProcess extends ProcessPromise {
    [k: string | number | symbol]: any;
}
export declare function createHook<Callback extends HookCallback, O extends HookOptions>(opts: O, name: string, cb: Callback, configurable: false): (pieces: TemplateStringsArray | HookOptions, ...args: any) => ReturnType<Callback>;
export declare function createHook<Callback extends HookCallback, O extends HookOptions>(opts: O, name: string, cb: Callback, configurable: true): (...args: DropFirst<Parameters<Callback>>) => (pieces: TemplateStringsArray | HookOptions, ...args: any) => ReturnType<Callback>;
export declare const ver: (target: string, range?: string) => string;
