import { z as zod } from "zod";
import { ZodAcceleratorContent } from "./content";
import { ZodAcceleratorParser } from "./parser";
declare module "zod" {
    interface ZodType<Output = any, Def extends zod.ZodTypeDef = zod.ZodTypeDef, Input = Output> {
        accelerator?: ZodAcceleratorParser<ZodType<Output, Def, Input>>;
    }
}
export declare abstract class ZodAccelerator {
    static accelerators: ZodAccelerator[];
    protected static zod: typeof zod;
    abstract get support(): any;
    abstract makeAcceleratorContent(zodSchema: zod.ZodType, zac: ZodAcceleratorContent): ZodAcceleratorContent;
    protected static findAcceleratorContent(zodSchema: zod.ZodType, ignoreSchemaAccelerator?: boolean): ZodAcceleratorContent;
    static build<_zodSchema extends zod.ZodType>(zodSchema: _zodSchema): ZodAcceleratorParser<_zodSchema, _zodSchema["_output"]>;
    static autoInstance(zodAccelerator: new (...args: any[]) => ZodAccelerator): void;
    static injectZod<Z extends typeof zod>(zod: Z): void;
}
