import * as Generator from '@postxl/generator';
import { Discriminator, FieldName } from '@postxl/schema';
import { WithBackend } from '../backend-core';
import { WithBase } from '../base';
import { WithTypes } from '../types';
type ContextRequirements = WithTypes<WithBackend<WithBase<Generator.Context>>>;
export type ContextResult = WithMockData<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type EnumContextResult = Generator.InferEnumContext<ContextResult>;
export type WithMockData<Context> = Generator.ExtendContextAndModel<Context, {
    mockData: ContextMockData;
}, {
    mockData: ModelContextData;
}>;
export type ContextMockData = {
    dataMocker: Generator.ImportableClass;
    idTracker: Generator.ImportableClass;
};
export type ModelResult = Generator.InferModelContext<ContextResult>;
export type ModelContextData = {
    stub: Generator.ImportableConstant;
    discriminatedUnions: DiscriminatedUnionMockData;
    dataMocker: {
        /**
         * Function in the data mocker that adds this model
         */
        add: Generator.FunctionName;
    };
};
export type DiscriminatedUnionMockData = Map<FieldName, DiscriminatedUnionMemberMockData_Stubs>;
export type DiscriminatedUnionMemberMockData_Stubs = Map<Discriminator, Generator.ImportableFunction>;
export declare const generatorId: string & import("zod").BRAND<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
export {};
