/**
 * Copyright 2025 The Artinet Project
 * SPDX-License-Identifier: Apache-2.0
 */
import { A2A } from "../types/index.js";
import { Tasks } from "../services/a2a/managers.js";
import { BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
export declare const TABLE_NAME = "artinet_tasks";
export declare const createTaskTable: (db: BaseSQLiteDatabase<`sync` | `async`, any, TaskTable>, tableName?: string) => Promise<void>;
export declare const TaskTable: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
    name: "artinet_tasks";
    schema: undefined;
    columns: {
        id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "id";
            tableName: "artinet_tasks";
            dataType: "string";
            columnType: "SQLiteText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: true;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            length: undefined;
        }>;
        contextId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "contextId";
            tableName: "artinet_tasks";
            dataType: "string";
            columnType: "SQLiteText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            length: undefined;
        }>;
        kind: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "kind";
            tableName: "artinet_tasks";
            dataType: "string";
            columnType: "SQLiteText";
            data: "task";
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            length: number | undefined;
            $type: "task";
        }>;
        status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "status";
            tableName: "artinet_tasks";
            dataType: "json";
            columnType: "SQLiteTextJson";
            data: {
                state: "unknown" | "submitted" | "working" | "input-required" | "completed" | "canceled" | "failed" | "rejected" | "auth-required";
                message?: {
                    role: "user" | "agent";
                    parts: ({
                        kind: "text";
                        text: string;
                        metadata?: Record<string, unknown> | undefined;
                    } | {
                        kind: "file";
                        file: {
                            bytes: string;
                            name?: string | undefined;
                            mimeType?: string | undefined;
                            uri?: undefined;
                        } | {
                            uri: string;
                            name?: string | undefined;
                            mimeType?: string | undefined;
                            bytes?: undefined;
                        };
                        metadata?: Record<string, unknown> | undefined;
                    } | {
                        kind: "data";
                        data: Record<string, unknown>;
                        metadata?: Record<string, unknown> | undefined;
                    })[];
                    messageId: string;
                    kind: "message";
                    metadata?: Record<string, unknown> | undefined;
                    extensions?: string[] | undefined;
                    referenceTaskIds?: string[] | undefined;
                    taskId?: string | undefined;
                    contextId?: string | undefined;
                } | undefined;
                timestamp?: string | undefined;
            };
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: {
                state: "unknown" | "submitted" | "working" | "input-required" | "completed" | "canceled" | "failed" | "rejected" | "auth-required";
                message?: {
                    role: "user" | "agent";
                    parts: ({
                        kind: "text";
                        text: string;
                        metadata?: Record<string, unknown> | undefined;
                    } | {
                        kind: "file";
                        file: {
                            bytes: string;
                            name?: string | undefined;
                            mimeType?: string | undefined;
                            uri?: undefined;
                        } | {
                            uri: string;
                            name?: string | undefined;
                            mimeType?: string | undefined;
                            bytes?: undefined;
                        };
                        metadata?: Record<string, unknown> | undefined;
                    } | {
                        kind: "data";
                        data: Record<string, unknown>;
                        metadata?: Record<string, unknown> | undefined;
                    })[];
                    messageId: string;
                    kind: "message";
                    metadata?: Record<string, unknown> | undefined;
                    extensions?: string[] | undefined;
                    referenceTaskIds?: string[] | undefined;
                    taskId?: string | undefined;
                    contextId?: string | undefined;
                } | undefined;
                timestamp?: string | undefined;
            };
        }>;
        history: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "history";
            tableName: "artinet_tasks";
            dataType: "json";
            columnType: "SQLiteTextJson";
            data: {
                role: "user" | "agent";
                parts: ({
                    kind: "text";
                    text: string;
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "file";
                    file: {
                        bytes: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        uri?: undefined;
                    } | {
                        uri: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        bytes?: undefined;
                    };
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "data";
                    data: Record<string, unknown>;
                    metadata?: Record<string, unknown> | undefined;
                })[];
                messageId: string;
                kind: "message";
                metadata?: Record<string, unknown> | undefined;
                extensions?: string[] | undefined;
                referenceTaskIds?: string[] | undefined;
                taskId?: string | undefined;
                contextId?: string | undefined;
            }[];
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: {
                role: "user" | "agent";
                parts: ({
                    kind: "text";
                    text: string;
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "file";
                    file: {
                        bytes: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        uri?: undefined;
                    } | {
                        uri: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        bytes?: undefined;
                    };
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "data";
                    data: Record<string, unknown>;
                    metadata?: Record<string, unknown> | undefined;
                })[];
                messageId: string;
                kind: "message";
                metadata?: Record<string, unknown> | undefined;
                extensions?: string[] | undefined;
                referenceTaskIds?: string[] | undefined;
                taskId?: string | undefined;
                contextId?: string | undefined;
            }[];
        }>;
        artifacts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "artifacts";
            tableName: "artinet_tasks";
            dataType: "json";
            columnType: "SQLiteTextJson";
            data: {
                artifactId: string;
                parts: ({
                    kind: "text";
                    text: string;
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "file";
                    file: {
                        bytes: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        uri?: undefined;
                    } | {
                        uri: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        bytes?: undefined;
                    };
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "data";
                    data: Record<string, unknown>;
                    metadata?: Record<string, unknown> | undefined;
                })[];
                name?: string | undefined;
                description?: string | undefined;
                metadata?: Record<string, unknown> | undefined;
                extension?: string[] | undefined;
            }[];
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: {
                artifactId: string;
                parts: ({
                    kind: "text";
                    text: string;
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "file";
                    file: {
                        bytes: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        uri?: undefined;
                    } | {
                        uri: string;
                        name?: string | undefined;
                        mimeType?: string | undefined;
                        bytes?: undefined;
                    };
                    metadata?: Record<string, unknown> | undefined;
                } | {
                    kind: "data";
                    data: Record<string, unknown>;
                    metadata?: Record<string, unknown> | undefined;
                })[];
                name?: string | undefined;
                description?: string | undefined;
                metadata?: Record<string, unknown> | undefined;
                extension?: string[] | undefined;
            }[];
        }>;
        metadata: import("drizzle-orm/sqlite-core").SQLiteColumn<{
            name: "metadata";
            tableName: "artinet_tasks";
            dataType: "json";
            columnType: "SQLiteTextJson";
            data: Record<string, unknown>;
            driverParam: string;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: Record<string, unknown>;
        }>;
    };
    dialect: "sqlite";
}>;
export type TaskTable = typeof TaskTable.$inferSelect;
export declare class SQLiteStore extends Tasks {
    private db;
    constructor(db: BaseSQLiteDatabase<`sync` | `async`, any, TaskTable>, tasks?: Map<string, A2A.Task>, tableName?: string);
    has(id: string): Promise<boolean>;
    list(): Promise<A2A.Task[]>;
    get(id: string): Promise<A2A.Task | undefined>;
    set(id: string, data?: A2A.Task): Promise<void>;
    delete(id: string): Promise<void>;
    search(query: string): Promise<A2A.Task[]>;
}
