/** * I/O schemas * * Provides type-safe schemas for I/O operations: * - File system path types with validation * - Export targets and configuration * - Batch input modes and parsing */ import { Schema } from "effect"; /** Validate file path does not contain invalid characters */ export declare const isValidFilePath: (path: string) => boolean; /** * Absolute file path with validation * * Validates that: * - Path is non-empty * - Contains no null bytes * - Has no surrounding whitespace */ export declare const FilePathSchema: Schema.brand>, "FilePath">; export type FilePath = typeof FilePathSchema.Type; export declare const FilePath: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect, import("effect/ParseResult").ParseError, never>; /** * Directory path (branded FilePath) * * Same validation as FilePath but semantically indicates a directory. */ export declare const DirectoryPathSchema: Schema.brand>, "FilePath">, "DirectoryPath">; export type DirectoryPath = typeof DirectoryPathSchema.Type; export declare const DirectoryPath: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect & import("effect/Brand").Brand<"DirectoryPath">, import("effect/ParseResult").ParseError, never>; /** * JSON file path schema with validation * * Validates: * - Non-empty string * - No null bytes * - No leading/trailing whitespace * - Must end with .json or .JSON extension */ export declare const JSONPathSchema: Schema.brand>>, "JSONPath">; export type JSONPath = typeof JSONPathSchema.Type; export declare const JSONPath: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect, import("effect/ParseResult").ParseError, never>; export declare const JSONPathSync: (i: string, overrideOptions?: import("effect/SchemaAST").ParseOptions) => string & import("effect/Brand").Brand<"JSONPath">; /** Type guard for JSONPath */ export declare const isValidJSONPath: (path: string) => path is JSONPath; /** * Export target schema - where to export palette results */ export declare const ExportTargetSchema: Schema.Literal<["none", "clipboard", "json"]>; export type ExportTarget = typeof ExportTargetSchema.Type; export declare const ExportTarget: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect<"none" | "clipboard" | "json", import("effect/ParseResult").ParseError, never>; /** * Export configuration schema */ export declare const ExportConfigSchema: Schema.Struct<{ target: Schema.Literal<["none", "clipboard", "json"]>; jsonPath: Schema.optional>>, "JSONPath">>; }>; export type ExportConfig = typeof ExportConfigSchema.Type; export declare const ExportConfig: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect<{ readonly target: "none" | "clipboard" | "json"; readonly jsonPath?: (string & import("effect/Brand").Brand<"JSONPath">) | undefined; }, import("effect/ParseResult").ParseError, never>; /** * Batch input mode schema - how to generate multiple palettes */ export declare const BatchInputModeSchema: Schema.Literal<["paste", "cycle", "transform"]>; export type BatchInputMode = typeof BatchInputModeSchema.Type; export declare const BatchInputMode: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect<"paste" | "cycle" | "transform", import("effect/ParseResult").ParseError, never>; /** * Batch paste input schema * * Validates multi-line or comma-separated color/stop pairs input */ export declare const BatchPasteInputSchema: Schema.brand>, "BatchPasteInput">; export type BatchPasteInput = typeof BatchPasteInputSchema.Type; export declare const BatchPasteInput: (u: unknown, overrideOptions?: import("effect/SchemaAST").ParseOptions) => import("effect/Effect").Effect, import("effect/ParseResult").ParseError, never>; //# sourceMappingURL=io.schema.d.ts.map