import React from 'react';
import type { SchemaArray } from 'zod-schema-form';
import type { PromptInstance, PromptMessage } from 'react-mcp-hook';
import type { AdditionalPromptDefinition } from '../../types/prompts';
export interface TemplatePromptMessage {
    role: PromptMessage['role'];
    /** String template supporting {{argumentName}} placeholders */
    content: string;
}
export interface CustomPromptTemplate {
    id: string;
    name: string;
    title?: string;
    description?: string;
    groupLabel?: string;
    argumentsSchema: SchemaArray;
    messages: TemplatePromptMessage[];
    createdAt: number;
    updatedAt: number;
}
export interface CustomPromptStore {
    version: number;
    prompts: Record<string, CustomPromptTemplate>;
}
export interface CreateCustomPromptInput {
    id?: string;
    name: string;
    title?: string;
    description?: string;
    groupLabel?: string;
    argumentsSchema?: SchemaArray;
    messages: TemplatePromptMessage[];
}
export interface UpdateCustomPromptInput {
    name?: string;
    title?: string;
    description?: string;
    groupLabel?: string;
    argumentsSchema?: SchemaArray;
    messages?: TemplatePromptMessage[];
}
export interface CustomPromptsContextValue {
    templates: CustomPromptTemplate[];
    readonlyPrompts: AdditionalPromptDefinition[];
    userPrompts: AdditionalPromptDefinition[];
    combinedPrompts: AdditionalPromptDefinition[];
    createPrompt: (input: CreateCustomPromptInput) => string;
    updatePrompt: (id: string, updates: UpdateCustomPromptInput) => boolean;
    deletePrompt: (id: string) => boolean;
    duplicatePrompt: (id: string, overrides?: Partial<CreateCustomPromptInput>) => string | null;
    importPrompts: (inputs: CreateCustomPromptInput[]) => string[];
    resolvePromptInstance: (id: string, args: Record<string, string>) => PromptInstance | undefined;
    getTemplate: (id: string) => CustomPromptTemplate | undefined;
}
export interface CustomPromptsProviderProps {
    children: React.ReactNode;
    propPrompts?: AdditionalPromptDefinition[];
    storageKey?: string;
}
export declare const CustomPromptsProvider: React.FC<CustomPromptsProviderProps>;
export declare const useCustomPrompts: () => CustomPromptsContextValue;
//# sourceMappingURL=useCustomPrompts.d.ts.map