import { type LayerName, type MetadataEntity, type MetadataStoreOptions, type PublicRequestOptions, type PublicResponse } from '../types.js';
/** Query options for listing or resolving template entities. */
export type TemplateQueryOptions = PublicRequestOptions & {
    status?: string;
    tags?: string[];
};
/** Supported template data layer selector. */
export type TemplateDataLayer = 'examples';
/** Options for retrieving template data payloads. */
export type TemplateDataQueryOptions = {
    layer?: TemplateDataLayer;
};
/** One textual template example file with source path. */
export type TemplateTextLayerContent = {
    content: string;
    path: string;
};
/** High-level template data payload returned by getDataForTemplate. */
export type TemplateDataPayload = {
    examples?: TemplateTextLayerContent[];
    layer: LayerName;
    template: string;
    warnings?: string[];
};
/**
 * List all templates, with options for filtering by status, tags, layer inclusion, and verbosity.
 * @param options Options for querying templates, including filtering by status and tags, layer/verbosity preferences.
 * @param storeOptions Options for configuring the metadata store.
 * @returns A promise that resolves to a public response containing the list of templates.
 */
export declare const listTemplates: (options?: TemplateQueryOptions, storeOptions?: MetadataStoreOptions) => Promise<PublicResponse<MetadataEntity[]>>;
/**
 * Get metadata for a specific template by name or ID, with options for layer inclusion and verbosity.
 * @param nameOrId The name or ID of the template to retrieve metadata for.
 * @param options Options for querying the template, including filtering by status and tags, layer/verbosity preferences, and whether to include layer references and sources.
 * @param storeOptions Options for configuring the metadata store.
 * @returns A promise that resolves to a public response containing the template metadata and related information, or null if not found.
 */
export declare const getTemplateMetadata: (nameOrId: string, options?: TemplateQueryOptions, storeOptions?: MetadataStoreOptions) => Promise<PublicResponse<MetadataEntity | null>>;
/**
 * High-level helper for template usage payloads grouped by layer semantics.
 * @param nameOrId The name or ID of the template to retrieve usage data for.
 * @param options Options for querying the template usage data, including layer preferences.
 * @param storeOptions Options for configuring the metadata store.
 * @returns A promise that resolves to a public response containing the template usage data, or null if not found.
 */
export declare const getDataForTemplate: (nameOrId: string, options?: TemplateDataQueryOptions, storeOptions?: MetadataStoreOptions) => Promise<PublicResponse<TemplateDataPayload | null>>;
