import type { HTMLAttributes } from 'svelte/elements';
export type ProcessingStatus = 'idle' | 'processing' | 'completed' | 'saved' | 'error';
export type CapturePriority = 'low' | 'normal' | 'high' | 'urgent';
export type CaptureSource = 'manual' | 'voice' | 'clipboard' | 'integration';
export interface CaptureMetadata {
    timestamp: Date;
    wordCount: number;
    characterCount: number;
    tags: string[];
    context: Record<string, any>;
    source: CaptureSource;
    priority: CapturePriority;
    sessionId?: string;
    location?: {
        lat: number;
        lng: number;
        accuracy: number;
    };
    device?: {
        type: string;
        os: string;
        browser: string;
    };
}
export interface CaptureContext {
    projectId?: string;
    workflowId?: string;
    parentCaptureId?: string;
    relatedConcepts?: string[];
    currentActivity?: string;
    mood?: string;
    energy?: number;
}
export interface BrainDumpCaptureProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onCapture'> {
    /**
     * Placeholder text for the capture area
     * @default "What's on your mind? Dump your thoughts here..."
     */
    placeholder?: string;
    /**
     * Minimum length required for capture
     * @default 10
     */
    minLength?: number;
    /**
     * Maximum length allowed for capture
     * @default 5000
     */
    maxLength?: number;
    /**
     * Available tags for quick categorization
     */
    tags?: string[];
    /**
     * Context information to attach to the capture
     */
    context?: CaptureContext;
    /**
     * Enable auto-save functionality
     * @default true
     */
    autoSave?: boolean;
    /**
     * Delay in milliseconds before auto-saving
     * @default 2000
     */
    autoSaveDelay?: number;
    /**
     * Show metadata information (word count, etc.)
     * @default true
     */
    showMetadata?: boolean;
    /**
     * Show processing status indicator
     * @default true
     */
    showProcessingStatus?: boolean;
    /**
     * Callback when content is captured
     */
    onCapture?: (data: {
        content: string;
        metadata: CaptureMetadata;
    }) => void | Promise<void>;
    /**
     * Callback when content is processed
     */
    onProcess?: (data: {
        content: string;
        tags: string[];
    }) => void | Promise<void>;
    /**
     * Callback when content is saved
     */
    onSave?: (data: {
        content: string;
        metadata: CaptureMetadata;
    }) => void | Promise<void>;
    /**
     * Callback when a tag is added
     */
    onTagAdd?: (tag: string) => void;
    /**
     * Callback when a tag is removed
     */
    onTagRemove?: (tag: string) => void;
}
export interface BrainDumpIntegration {
    /**
     * Send to Oracle agent for processing
     */
    sendToOracle: (content: string, metadata: CaptureMetadata) => Promise<OracleResponse>;
    /**
     * Route through Scribe agent for structuring
     */
    routeToScribe: (content: string, tags: string[]) => Promise<ScribeResponse>;
    /**
     * Store in catalog system
     */
    storeToCatalog: (data: CatalogEntry) => Promise<string>;
}
export interface OracleResponse {
    intent: string;
    suggestedWorkflow: string;
    extractedConcepts: string[];
    priority: CapturePriority;
    delegatedTo?: string[];
}
export interface ScribeResponse {
    structuredContent: {
        title: string;
        summary: string;
        keyPoints: string[];
        entities: Array<{
            type: string;
            value: string;
        }>;
        concepts: string[];
        actions: Array<{
            type: string;
            description: string;
        }>;
    };
    metadata: {
        complexity: number;
        sentiment: string;
        category: string;
    };
}
export interface CatalogEntry {
    id?: string;
    content: string;
    metadata: CaptureMetadata;
    processed?: ScribeResponse;
    oracleAnalysis?: OracleResponse;
    createdAt?: Date;
    updatedAt?: Date;
}
//# sourceMappingURL=types.d.ts.map