import * as Generator from '@postxl/generator';
import { WithBackendTrpcRouter } from '../backend-router-trpc';
import { WithBase } from '../base';
import { WithFrontend } from '../frontend-core';
import { WithForms } from '../frontend-forms';
import { WithTables } from '../frontend-tables';
import { WithTrpcClient } from '../frontend-trpc-client/trpc-client.generator';
import { WithTypes } from '../types';
type ContextRequirements = WithTables<WithFrontend<WithForms<WithTrpcClient<WithBackendTrpcRouter<WithTypes<WithBase<Generator.Context>>>>>>>;
export type ModelContextRequirements = Generator.InferModelContext<ContextRequirements>;
export type EnumContextRequirements = Generator.InferEnumContext<ContextRequirements>;
export type ContextResult = WithAdmin<ContextRequirements>;
export type ModelContextResult = Generator.InferModelContext<ContextResult>;
export type WithAdmin<Context> = Generator.ExtendContextAndModel<Context, {
    /**
     * Admin module configuration
     */
    admin: ContextAdmin;
}, {
    /**
     * Admin module configuration for the model
     */
    admin: ModelContextAdmin;
}>;
export type Page = {
    /**
     * The component for the page
     */
    pageComponent: Generator.ImportableFunction;
    /**
     * The route path for the page, e.g. `/admin/user`
     */
    route: string;
    /**
     * Optional aliases for the page route, e.g. `/admin/users`
     */
    aliases?: string[];
    /**
     * If true, the page is an outlet route and an index page will be created in addition to the outlet
     */
    isOutlet?: boolean;
};
type ContextAdmin = {
    components: {
        /**
         * Sidebar component for the Admin UI
         */
        sidebar: Generator.ImportableFunction;
        /**
         * Audit Log Sidebar component for the Admin UI
         */
        auditLogSidebar: Generator.ImportableFunction;
    };
    pages: {
        /**
         * Admin Overview Page
         */
        overview: Page;
        dataManagement: Page;
    };
};
type ModelContextAdmin = {
    /**
     * Admin Page for the model
     */
    page: Page;
};
export type PagePaths = {
    pages: string;
    routes: string;
    components: string;
};
export declare const generatorId: string & import("zod").BRAND<"PXL.GeneratorInterfaceId">;
export declare const generator: Generator.GeneratorInterface;
export {};
