import React from 'react';
import { StoredModel } from './contexts/ModelContext';
import { type McpServerEntry, type StoredMcpServer } from './contexts/McpContext';
import type { AttachmentCallback } from './contexts/ChatSettingsContext';
import { type ThemeOverrides, type ThemeSelection } from './theme';
import type { StorageAdapter } from './lib/storageAdapter';
import type { AdditionalPromptDefinition } from './types/prompts';
import type { AdditionalToolDefinition } from './contexts/ChatContext';
import { type ProviderPlugin } from './lib/providers';
import { type SanitizedCredentialUpdatePayload } from './contexts/CredentialContext';
export interface ModelContextPlaygroundProps {
    className?: string;
    mcpServers?: Array<McpServerEntry | StoredMcpServer>;
    languageModels?: Array<StoredModel>;
    theme?: ThemeSelection;
    themeOverrides?: ThemeOverrides;
    additionalTools?: Array<AdditionalToolDefinition>;
    additionalPrompts?: AdditionalPromptDefinition[];
    getProviders?: () => Promise<ProviderPlugin[]>;
    loadInitialCredentials?: () => Promise<StoredModel[] | undefined>;
    onCredentialsSubmit?: (payload: SanitizedCredentialUpdatePayload) => Promise<void> | void;
    onReady?: () => void;
    attachmentCallbackHandler?: AttachmentCallback;
    systemPrompt?: string;
    storageAdapter?: StorageAdapter;
}
export declare const ModelContextPlayground: React.FC<ModelContextPlaygroundProps>;
export { ThemeProvider, createTheme, defaultTheme, darkTheme, systemTheme } from './theme';
export { registerProviderPlugin, ProviderPlugin } from './lib/providers';
export type { ThemeTokens, ThemeOverrides } from './theme';
export type { AdditionalPromptDefinition } from './types/prompts';
export type { AdditionalToolDefinition } from './contexts/ChatContext';
export type { StorageAdapter } from './lib/storageAdapter';
export { CustomPromptsProvider, useCustomPrompts } from './contexts/customPrompts/useCustomPrompts';
export type { CustomPromptsContextValue, CustomPromptTemplate, TemplatePromptMessage, CreateCustomPromptInput, UpdateCustomPromptInput } from './contexts/customPrompts/useCustomPrompts';
export { useProviderRegistry } from './contexts/ProviderRegistryContext';
export type { ProviderInitializationStatus } from './contexts/ProviderRegistryContext';
export type { ProviderRuntime, ProviderId, ProviderAgent, ChatProvider, ProviderRunCallbacks, ProviderRunHandle, ProviderRunInput, ProviderRunResult, ProviderResumeInput, ProviderStreamCallbacks, ProviderStreamHandler, ProviderMetadata, ProviderInitialization, ProviderToolEvent, ProviderMessageEvent, ProviderReasoningEvent, ProviderStatusEvent, ProviderFinalOutputEvent, ProviderMessageInput, ProviderAttachmentInput, ModelProviderDefinition } from './lib/providers';
export type { UseChatAgentOptions } from './hooks/useChatAgent/useChatAgent.types';
export type { ToolPreferenceMap, ToolPermission } from './contexts/McpContext';
export type { FunctionToolPermission, AdditionalToolPreferences, AdditionalToolWithPermission, StoredAdditionalToolPreferences } from './types/additionalTools';
export { isToolPermissionConfigurable, getPermissionReason, resolveToolPermission, computeToolWithPermission, loadAdditionalToolPreferences, saveAdditionalToolPreferences, updateToolPermission, clearToolPermission, processAdditionalTools } from './lib/additionalToolPermissions';
export type { StoredModel } from './contexts/ModelContext';
export { ATTACHMENT_TOOLS_PREAMBLE, type AttachmentToolDefinition } from './lib/attachmentTools';
export type { SanitizedCredentialUpdatePayload, CredentialUpdateAction } from './contexts/CredentialContext';
//# sourceMappingURL=index.d.ts.map