import { type Static, Type } from "typebox";
export interface TodoFrontMatter {
    id: string;
    title: string;
    tags: string[];
    status: string;
    created_at: string;
    assigned_to_session?: string;
}
export interface TodoRecord extends TodoFrontMatter {
    body: string;
}
export interface LockInfo {
    id: string;
    pid: number;
    session?: string | null;
    created_at: string;
}
export declare const TodoParams: Type.TObject<{
    action: Type.TUnsafe<"append" | "claim" | "create" | "delete" | "get" | "list" | "list-all" | "release" | "update">;
    id: Type.TOptional<Type.TString>;
    title: Type.TOptional<Type.TString>;
    status: Type.TOptional<Type.TString>;
    tags: Type.TOptional<Type.TArray<Type.TString>>;
    body: Type.TOptional<Type.TString>;
    force: Type.TOptional<Type.TBoolean>;
}>;
export type TodoToolParams = Static<typeof TodoParams>;
export type TodoAction = "list" | "list-all" | "get" | "create" | "update" | "append" | "delete" | "claim" | "release";
export type TodoRecordAction = Exclude<TodoAction, "list" | "list-all">;
export type TodoToolDetails = {
    action: "list" | "list-all";
    todos: TodoFrontMatter[];
    currentSessionId?: string;
    error?: string;
} | {
    action: TodoRecordAction;
    todo?: TodoRecord;
    error?: string;
};
export interface TodoOperationError {
    error: string;
}
export type TodoOperationResult<T> = T | TodoOperationError;
export declare function isTodoOperationError<T>(result: TodoOperationResult<T>): result is TodoOperationError;
//# sourceMappingURL=todos-types.d.ts.map