import * as Generator from '@postxl/generator';
import { WithBackend } from '../backend-core';
import { WithBackendTrpcRouter } from '../backend-router-trpc';
import { WithUpdates } from '../backend-update';
import { WithBase } from '../base';
import { WithFrontend } from '../frontend-core';
import { WithTypes } from '../types';
type ContextRequirements = WithBackendTrpcRouter<WithUpdates<WithBackend<WithTypes<WithFrontend<WithBase<Generator.Context>>>>>>;
export type ModelContextRequirements = Generator.InferModelContext<ContextRequirements>;
export type ContextResult = WithTrpcClient<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type WithTrpcClient<Context> = Generator.ExtendContextAndModel<Context, {
    /**
     * Overall repository information
     */
    trpcClient: ContextTrpcClient;
}, {
    /**
     * Hook that provides access to one model entity (data and operations)
     */
    itemHook: Generator.ImportableConstant & {
        type: Generator.ImportableType;
        /**
         * Name of the hook that returns a model
         */
        item: Generator.ImportableConstant;
    };
    /**
     * Hook that provides access to all model entities
     */
    itemsHook: Generator.ImportableConstant & {
        type: Generator.ImportableType;
        /**
         * Hook that returns all models as list
         */
        list: Generator.ImportableConstant;
        /**
         * Hook that returns all models as map
         */
        map: Generator.ImportableConstant;
        /**
         * Name of the hook that creates a model
         */
        create?: Generator.ImportableConstant;
        /**
         * Name of the hook that creates multiple models
         */
        createMany?: Generator.ImportableConstant;
        /**
         * Name of the hook that updates a model
         */
        update?: Generator.ImportableConstant;
        /**
         * Name of the hook that updates multiple models
         */
        updateMany?: Generator.ImportableConstant;
        /**
         * Name of the hook that updates a single field of a model
         */
        updateField?: Generator.ImportableConstant;
        /**
         * Name of the hook that deletes a model
         */
        delete?: Generator.ImportableConstant;
        /**
         * Name of the hook that deletes multiple models
         */
        deleteMany?: Generator.ImportableConstant;
        /**
         * Name of the hook that clones a model
         */
        clone?: Generator.ImportableConstant;
        /**
         * Name of the hook that clones multiple models
         */
        cloneMany?: Generator.ImportableConstant;
    };
}>;
type ContextTrpcClient = Generator.ImportableConstant;
export declare const generatorId: string & import("zod").BRAND<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
export {};
