import * as Generator from '@postxl/generator';
import { WithActions } from '../backend-actions';
import { WithBackend } from '../backend-core';
import { WithDatabase } from '../backend-database-prisma';
import { WithBase } from '../base';
import { WithDecoders } from '../decoders';
import { WithSeedData } from '../seed-data';
import { WithTypes } from '../types';
import { ModelRepository as ModelContextRepository } from './model.types';
type ContextRequirements = WithSeedData<WithDecoders<WithActions<WithTypes<WithDatabase<WithBackend<WithBase<Generator.Context>>>>>>>;
export type ContextResult = WithRepositories<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type WithRepositories<Context> = Generator.ExtendContextAndModel<Context, {
    /**
     * Overall repository information
     */
    repositories: ContextRepositories;
}, {
    /**
     * Model specific repository information
     */
    repository: ModelContextRepository;
}>;
type ContextRepositories = {
    module: Generator.ImportableItem;
    /**
     * The generic repository interface
     */
    interface: Generator.ImportableType;
    /**
     * The type for a bulk mutation
     */
    bulkMutation: Generator.ImportableType;
    /**
     * Name for generic type for a model specific bulk mutation
     */
    bulkMutationForModel: Generator.ImportableType;
    dataService: Generator.ImportableClass & {
        executeBulkMutations: Generator.FunctionName;
        executeBulkMutation: Generator.FunctionName;
        getAllAsDataModel: Generator.FunctionName;
    };
};
export declare const generatorId: string & import("zod").$brand<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
export {};
