import * as stream from 'stream';
import { Options } from 'pug';
import { z } from 'zod';

declare const gulpPugCompilerSchema: z.ZodObject<{
    pugOptions: z.ZodOptional<z.ZodType<Options, z.ZodTypeDef, Options>>;
    pluginOptions: z.ZodOptional<z.ZodObject<{
        onAfterCompile: z.ZodOptional<z.ZodOptional<z.ZodFunction<z.ZodTuple<[z.ZodString], z.ZodUnknown>, z.ZodUnion<[z.ZodPromise<z.ZodString>, z.ZodString]>>>>;
    }, "strip", z.ZodTypeAny, {
        onAfterCompile?: ((args_0: string, ...args: unknown[]) => string | Promise<string>) | undefined;
    }, {
        onAfterCompile?: ((args_0: string, ...args: unknown[]) => string | Promise<string>) | undefined;
    }>>;
}, "strict", z.ZodTypeAny, {
    pugOptions?: Options | undefined;
    pluginOptions?: {
        onAfterCompile?: ((args_0: string, ...args: unknown[]) => string | Promise<string>) | undefined;
    } | undefined;
}, {
    pugOptions?: Options | undefined;
    pluginOptions?: {
        onAfterCompile?: ((args_0: string, ...args: unknown[]) => string | Promise<string>) | undefined;
    } | undefined;
}>;
type GulpPugCompilerOptions = z.infer<typeof gulpPugCompilerSchema>;

declare const GulpPugCompiler: (options: GulpPugCompilerOptions) => stream.Transform;

export { GulpPugCompiler as default };
