import { OpenAPIV3 } from "openapi-types";
import { SchemaResolver } from "src/generators/core/SchemaResolver.class";
import { WithRequired } from "src/generators/types/common";
import { GenerateOptions } from "src/generators/types/options";
export interface ZodSchemaMetaData {
    isRequired?: boolean;
    name?: string;
    parent?: ZodSchema;
    referencedBy?: ZodSchema[];
    isParentPartial?: boolean;
}
export declare class ZodSchema {
    schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject;
    resolver: SchemaResolver;
    private code?;
    ref?: string;
    enumRef?: string;
    children: ZodSchema[];
    meta: WithRequired<ZodSchemaMetaData, "referencedBy">;
    constructor(schema: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject, resolver: SchemaResolver, meta?: ZodSchemaMetaData, enumRef?: string);
    getCodeString(tag?: string, options?: GenerateOptions): string;
    get complexity(): number;
    assign(code: string): this;
    inherit(parent?: ZodSchema): this;
}
export declare function getParentRef(meta: ZodSchemaMetaData | undefined): string | undefined;
