import type { ReactNode } from 'react';
import { type SidebarRoute } from './Sidebar.js';
import type { PaletteEntry } from './palette-index.js';
import type { ActivityStore } from '../state/activity-store.js';
export declare const DEFAULT_ROUTES: readonly SidebarRoute[];
interface AppProps {
    routes?: readonly SidebarRoute[];
    activeRoute: string;
    /**
     * Full view discriminator for MainPane transitions (e.g. 'home', 'category:browser',
     * 'action:verify'). When omitted, falls back to activeRoute for backwards compat.
     */
    routeId?: string;
    dirtyByCategory: Record<string, number>;
    status: 'ok' | 'warn' | 'err';
    pending: number;
    toast: {
        message: string;
        severity: 'ok' | 'warn' | 'err';
    } | null;
    focusedPane: 'sidebar' | 'main';
    paneTitle: string;
    onSelectRoute: (id: string) => void;
    children: ReactNode;
    paletteOpen?: boolean;
    paletteEntries?: PaletteEntry[];
    onPalettePick?: (entry: PaletteEntry) => void;
    onPaletteClose?: () => void;
    helpOpen?: boolean;
    onHelpClose?: () => void;
    activityStore?: ActivityStore;
    /** Unified save-state label for the Header right-side info area. */
    saveLabel?: string;
}
export declare function App(props: AppProps): JSX.Element;
export {};
//# sourceMappingURL=App.d.ts.map