import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { Schema } from "effect";
type SchemaKind = "string" | "number" | "boolean" | "array" | "object" | "record" | "unknown";
type NoContextSchema = Schema.Schema;
type ParseSuccess = {
success: true;
data: A;
};
type ParseFailure = {
success: false;
error: Error;
};
declare class EffectSchemaCompat {
readonly schema: NoContextSchema;
private readonly kind;
constructor(schema: NoContextSchema, kind?: SchemaKind);
describe(_description: string): EffectSchemaCompat;
optional(): EffectSchemaCompat;
nullable(): EffectSchemaCompat;
min(limit: number): EffectSchemaCompat;
max(limit: number): EffectSchemaCompat;
int(): EffectSchemaCompat;
positive(): EffectSchemaCompat;
nonnegative(): EffectSchemaCompat;
finite(): EffectSchemaCompat;
parse(value: unknown): A;
safeParse(value: unknown): ParseSuccess | ParseFailure;
safeParseAsync(value: unknown): Promise | ParseFailure>;
}
type Shape = Record>;
type InferCompat> = TSchema extends EffectSchemaCompat ? A : never;
export type InferShape = {
[K in keyof TShape]: InferCompat;
};
export declare const z: {
string: () => EffectSchemaCompat;
number: () => EffectSchemaCompat;
boolean: () => EffectSchemaCompat;
array: (item: EffectSchemaCompat) => EffectSchemaCompat>;
object: (shape: TShape) => EffectSchemaCompat>;
enum: ]>(values: Values) => EffectSchemaCompat;
record: (key: EffectSchemaCompat, value: EffectSchemaCompat) => EffectSchemaCompat>;
};
export declare const registerEffectTool: (server: McpServer, name: string, description: string, shape: TShape, handler: (args: InferShape) => unknown) => void;
export {};
//# sourceMappingURL=effect-schema-tool.d.ts.map