import * as Generator from '@postxl/generator';
import { FieldName } from '@postxl/schema';
import { WithBackendTrpcRouter } from '../backend-router-trpc';
import { WithUpdates } from '../backend-update';
import { WithBase } from '../base';
import { WithDecoders } from '../decoders';
import { WithFrontend } from '../frontend-core';
import { WithFrontendTrpcClient } from '../frontend-trpc-client';
import { WithSeedData } from '../seed-data';
import { WithTypes } from '../types';
type ContextRequirements = WithUpdates<WithFrontendTrpcClient<WithBackendTrpcRouter<WithSeedData<WithDecoders<WithTypes<WithFrontend<WithBase<Generator.Context>>>>>>>>;
export type ModelContextRequirements = Generator.InferModelContext<ContextRequirements>;
export type EnumContextRequirements = Generator.InferEnumContext<ContextRequirements>;
export type ContextResult = WithForms<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type EnumContextResult = Generator.InferEnumContext<ContextResult>;
export type WithForms<Context> = Generator.ExtendContextAndModelAndEnum<Context, {
    /**
     * Overall React forms information
     */
    forms: ContextForms;
}, {
    /**
     * Model specific React forms information
     */
    forms: ModelContextForms;
}, {
    /**
     * Enum specific React forms information
     */
    inputs: EnumContextInputs;
}>;
type ContextForms = {};
type ModelContextForms = {
    create: Generator.ImportableFunction;
    createModal: Generator.ImportableFunction;
    update: Generator.ImportableFunction;
    updateModal: Generator.ImportableFunction;
    inputs: {
        select: Generator.ImportableFunction;
        combobox: Generator.ImportableFunction;
    };
    discriminatedUnions: Map<FieldName, {
        field: Generator.ImportableFunction;
        schema: Generator.ImportableConstant;
        defaults: Generator.ImportableConstant;
    }>;
};
export type EnumContextInputs = {
    select: Generator.ImportableFunction;
};
export declare const generatorId: string & import("zod").$brand<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
export {};
