import { type ReactNode } from "react";
import type { ResourceTemplate } from "./templates/types.js";
/** Props for {@link TemplateGallery}. */
export interface TemplateGalleryProps<TData> {
    /** Templates to display in the gallery. */
    readonly templates: readonly ResourceTemplate<TData>[];
    /** Called when the user selects a template. */
    readonly onSelect: (template: ResourceTemplate<TData>) => void;
    /**
     * Content to render when no templates match the search/filter.
     * Falls back to a built-in empty message if not provided.
     */
    readonly emptyContent?: ReactNode;
    /** Additional CSS classes for the root container. */
    readonly className?: string;
}
/**
 * A searchable, filterable gallery of resource templates.
 *
 * Renders category tabs, a search input, and a responsive card grid.
 * Uses the headless `useTemplateFilter` hook for state — platform
 * builders who want custom rendering can use the hook directly.
 *
 * Keyboard navigation:
 * - Tab moves focus between the search input, category tabs, and cards
 * - Arrow keys (Left/Right) navigate between category tabs
 * - Enter/Space activates the focused tab or card
 *
 * All structural styling via `--stgm-*` tokens. Zero Console or
 * framework dependencies.
 *
 * @typeParam TData - The wizard data shape (e.g. `AgentWizardData`).
 *
 * @example
 * ```tsx
 * <TemplateGallery
 *   templates={AGENT_TEMPLATES}
 *   onSelect={(template) => startWizardWithTemplate(template)}
 * />
 * ```
 */
export declare function TemplateGallery<TData>({ templates, onSelect, emptyContent, className, }: TemplateGalleryProps<TData>): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=TemplateGallery.d.ts.map