import { type ComponentType } from 'react';
import type { PageProps, PageRegistryEntry, SlotName } from './types';
/**
 * Page Registry - Central registry for SmartStack pages
 * Enables page overrides by clients
 */
declare class PageRegistryClass {
    private pages;
    /**
     * Register a default page component
     */
    register(key: string, component: ComponentType<PageProps>, slots?: SlotName[]): void;
    /**
     * Get a page entry by key
     */
    get(key: string): PageRegistryEntry | undefined;
    /**
     * Get all registered pages
     */
    getAll(): PageRegistryEntry[];
    /**
     * Check if a page is registered
     */
    has(key: string): boolean;
    /**
     * Get available slots for a page
     */
    getSlots(key: string): SlotName[];
}
export declare const PageRegistry: PageRegistryClass;
/**
 * Higher-order component that enables page override
 * Wraps a page component to check for client override
 */
export declare function withPageOverride<P extends PageProps>(pageKey: string, DefaultComponent: ComponentType<P>): ComponentType<P>;
/**
 * Hook to get the active page component (override or default)
 */
export declare function useActivePage(pageKey: string): ComponentType<PageProps> | undefined;
/**
 * Component that renders an overridable page
 */
interface ExtendablePageProps {
    pageKey: string;
    defaultComponent: ComponentType<PageProps>;
    params?: Record<string, string>;
}
export declare function ExtendablePage({ pageKey, defaultComponent: DefaultComponent, params }: ExtendablePageProps): import("react/jsx-runtime").JSX.Element;
/**
 * Pre-defined page keys for SmartStack pages
 */
export declare const PAGE_KEYS: {
    readonly USERS_LIST: "platform.administration.users";
    readonly USERS_DETAIL: "platform.administration.users.detail";
    readonly ROLES_LIST: "platform.administration.permissions.roles";
    readonly ROLES_DETAIL: "platform.administration.permissions.roles.detail";
    readonly PERMISSIONS_LIST: "platform.administration.permissions.permissions";
    readonly PERMISSIONS_DETAIL: "platform.administration.permissions.permissions.detail";
    readonly ASSIGNMENTS: "platform.administration.permissions.assignments";
    readonly AI_DASHBOARD: "platform.administration.ai.dashboard";
    readonly AI_PROMPTS_LIST: "platform.administration.ai.prompts";
    readonly AI_PROMPTS_DETAIL: "platform.administration.ai.prompts.detail";
    readonly WORKFLOWS_LIST: "platform.administration.workflows.list";
    readonly WORKFLOWS_DETAIL: "platform.administration.workflows.detail";
    readonly EMAIL_TEMPLATES_LIST: "platform.administration.workflows.email-templates";
    readonly EMAIL_TEMPLATES_DETAIL: "platform.administration.workflows.email-templates.detail";
    readonly TICKETS_LIST: "platform.support.tickets";
    readonly TICKETS_DETAIL: "platform.support.tickets.detail";
    readonly SUPPORT_DASHBOARD: "platform.support.dashboard";
    readonly USER_PROFILE: "personal.myspace.profile";
    readonly USER_PREFERENCES: "personal.myspace.preferences";
    readonly USER_DASHBOARD: "personal.myspace.dashboard";
    readonly MY_TICKETS_LIST: "business.support-client.my-tickets";
    readonly MY_TICKETS_DETAIL: "business.support-client.my-tickets.detail";
};
export type PageKey = typeof PAGE_KEYS[keyof typeof PAGE_KEYS];
export {};
//# sourceMappingURL=PageRegistry.d.ts.map