import * as Generator from '@postxl/generator';
import { WithBackend } from '../backend-core';
import { WithView } from '../backend-view';
import { WithBase } from '../base';
import { WithDecoders } from '../decoders';
import { WithTypes } from '../types';
export type ContextRequirements = WithView<WithDecoders<WithTypes<WithBackend<WithBase<Generator.Context>>>>>;
export type ContextResult = WithRestApi<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type WithRestApi<Context> = Generator.ExtendContextAndModel<Context, {
    restApi: RestApiContext;
}, {
    restApi: RestApiModelContext;
}>;
export type RestApiContext = {
    module: Generator.ImportableClass;
};
export type RestApiModelContext = {
    controller: Generator.ImportableClass & {
        _filePath: Generator.FilePath;
    };
};
export declare const generatorId: string & import("zod").BRAND<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
