import { type TablesRelationalConfig } from 'drizzle-orm';
import { type MySqlDatabase, type MySqlQueryResultHKT, type PreparedQueryHKTBase } from 'drizzle-orm/mysql-core';
import type { DurableChildTaskExecution, DurableChildTaskExecutionErrorStorageObject, DurableExecutionErrorStorageObject, DurableStorage, DurableTaskExecutionStatusStorageObject, DurableTaskRetryOptions } from 'durable-execution';
/**
 * Create a mysql table for durable task executions.
 *
 * @param tableName - The name of the table.
 * @returns The mysql table.
 */
export declare function createDurableTaskExecutionsMySQLTable(tableName?: string): import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
    name: string;
    schema: undefined;
    columns: {
        id: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "id";
            tableName: string;
            dataType: "number";
            columnType: "MySqlBigInt53";
            data: number;
            driverParam: string | number;
            notNull: true;
            hasDefault: true;
            isPrimaryKey: true;
            isAutoincrement: true;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        rootTaskId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "root_task_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        rootExecutionId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "root_execution_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        parentTaskId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "parent_task_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        parentExecutionId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "parent_execution_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        isFinalizeTask: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "is_finalize_task";
            tableName: string;
            dataType: "boolean";
            columnType: "MySqlBoolean";
            data: boolean;
            driverParam: number | boolean;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        taskId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "task_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        executionId: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "execution_id";
            tableName: string;
            dataType: "string";
            columnType: "MySqlVarChar";
            data: string;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        retryOptions: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "retry_options";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableTaskRetryOptions;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableTaskRetryOptions;
        }>;
        timeoutMs: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "timeout_ms";
            tableName: string;
            dataType: "number";
            columnType: "MySqlInt";
            data: number;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        sleepMsBeforeRun: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "sleep_ms_before_run";
            tableName: string;
            dataType: "number";
            columnType: "MySqlInt";
            data: number;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        runInput: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "run_input";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        runOutput: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "run_output";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        output: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "output";
            tableName: string;
            dataType: "string";
            columnType: "MySqlText";
            data: string;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        childrenTasksCompletedCount: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "children_tasks_completed_count";
            tableName: string;
            dataType: "number";
            columnType: "MySqlInt";
            data: number;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        childrenTasks: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "children_tasks";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableChildTaskExecution[];
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableChildTaskExecution[];
        }>;
        childrenTasksErrors: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "children_tasks_errors";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableChildTaskExecutionErrorStorageObject[];
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableChildTaskExecutionErrorStorageObject[];
        }>;
        finalizeTask: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "finalize_task";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableChildTaskExecution;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableChildTaskExecution;
        }>;
        finalizeTaskError: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "finalize_task_error";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableExecutionErrorStorageObject;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableExecutionErrorStorageObject;
        }>;
        error: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "error";
            tableName: string;
            dataType: "json";
            columnType: "MySqlJson";
            data: DurableExecutionErrorStorageObject;
            driverParam: string;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableExecutionErrorStorageObject;
        }>;
        status: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "status";
            tableName: string;
            dataType: "string";
            columnType: "MySqlVarChar";
            data: DurableTaskExecutionStatusStorageObject;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: [string, ...string[]];
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {
            $type: DurableTaskExecutionStatusStorageObject;
        }>;
        isClosed: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "is_closed";
            tableName: string;
            dataType: "boolean";
            columnType: "MySqlBoolean";
            data: boolean;
            driverParam: number | boolean;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        needsPromiseCancellation: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "needs_promise_cancellation";
            tableName: string;
            dataType: "boolean";
            columnType: "MySqlBoolean";
            data: boolean;
            driverParam: number | boolean;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        retryAttempts: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "retry_attempts";
            tableName: string;
            dataType: "number";
            columnType: "MySqlInt";
            data: number;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        startAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "start_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        startedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "started_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        finishedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "finished_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        expiresAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "expires_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: false;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "created_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
        updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{
            name: "updated_at";
            tableName: string;
            dataType: "date";
            columnType: "MySqlTimestamp";
            data: Date;
            driverParam: string | number;
            notNull: true;
            hasDefault: false;
            isPrimaryKey: false;
            isAutoincrement: false;
            hasRuntimeDefault: false;
            enumValues: undefined;
            baseColumn: never;
            identity: undefined;
            generated: undefined;
        }, {}, {}>;
    };
    dialect: "mysql";
}>;
/**
 * The type of the mysql table for durable task executions.
 */
export type DurableTaskExecutionsMySQLTable = ReturnType<typeof createDurableTaskExecutionsMySQLTable>;
/**
 * Create a mysql durable storage.
 *
 * @param db - The mysql database.
 * @param table - The mysql task executions table.
 * @returns The mysql durable storage.
 */
export declare function createMySQLDurableStorage<TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>(db: MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>, table: DurableTaskExecutionsMySQLTable): DurableStorage;
//# sourceMappingURL=mysql.d.ts.map