import * as Generator from '@postxl/generator';
import { WithActions } from '../backend-actions';
import { WithBackend } from '../backend-core';
import { WithBase } from '../base';
import { WithTypes } from '../types';
import { SeedDataRecord } from './generator/model-seed-data.generator';
export type ContextRequirements = WithActions<WithTypes<WithBackend<WithBase<Generator.Context>>>>;
export type ModelContextRequirements = Generator.InferModelContext<ContextRequirements>;
export type ContextResult = WithSeedData<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type WithSeedData<Context> = Generator.ExtendContextAndModel<Context, {
    seedData: SeedDataContext;
}, {
    seedData: SeedDataModelContext;
}>;
export type SeedDataContext = {
    /**
     * The Excel template that contains all seed data
     */
    excelTemplate: {
        /**
         * The path to the Excel file, relative to the project root
         */
        projectRootPath: Generator.FilePath;
    };
    /**
     * Type definitions for seed migrations
     */
    migrationTypes: {
        /**
         * Union type of all seed migration types
         */
        summary: Generator.ImportableType;
        /**
         * Shared base type, used by all seed migration types
         */
        base: Generator.ImportableType;
        /**
         * Type for seed migrations that executes an Excel import with delta detection
         */
        excel: Generator.ImportableType & {
            discriminant: Generator.DiscriminantValue;
        };
        /**
         * Type for seed migrations that executes an Excel import without delta detection
         */
        excelSeed: Generator.ImportableType & {
            discriminant: Generator.DiscriminantValue;
        };
        /**
         * Type for seed migrations that executes a custom action
         */
        customAction: Generator.ImportableType & {
            discriminant: Generator.DiscriminantValue;
        };
    };
    /**
     * The action array of all seed migrations
     */
    seedMigrations: Generator.ImportableConstant;
};
export type SeedDataModelContext = {
    dataVariable: Generator.ImportableConstant;
    /**
     * The actual Seed data that can be used in the generators.
     */
    data: SeedDataRecord[];
    excel: {
        sheetName: string;
        tableName: string;
    };
};
export declare const generatorId: string & import("zod").$brand<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
