import { Schema } from "effect";
export declare const ToolErrorSchema: Schema.Struct<{
    readonly code: Schema.String;
    readonly message: Schema.String;
    readonly status: Schema.optional<Schema.Number>;
    readonly details: Schema.optional<Schema.Unknown>;
    readonly retryable: Schema.optional<Schema.Boolean>;
}>;
export type ToolError = typeof ToolErrorSchema.Type;
export type ToolResult<T> = {
    readonly ok: true;
    readonly data: T;
} | {
    readonly ok: false;
    readonly error: ToolError;
};
export declare const ToolResult: {
    readonly ok: <T>(data: T) => ToolResult<T>;
    readonly fail: <T = never>(error: ToolError) => ToolResult<T>;
};
export declare const isToolResult: (value: unknown) => value is ToolResult<unknown>;
//# sourceMappingURL=tool-result.d.ts.map