/** * Nominal path string types. * * Use these at module boundaries after a path has been normalized by the * Effect `Path` service. Keep raw strings at external input boundaries. * * @experimental This API is unstable and may change without notice. */ import * as Option from "effect/Option"; import type * as Path from "effect/Path"; import * as Schema from "effect/Schema"; export declare const AbsolutePathSchema: Schema.brand; export type AbsolutePath = Schema.Schema.Type; export declare const RelativePathSchema: Schema.brand; export type RelativePath = Schema.Schema.Type; export declare const decodeAbsolutePathSync: (value: string) => AbsolutePath; export declare const decodeRelativePathSync: (value: string) => RelativePath; export declare const makeAbsolutePath: (path: Path.Path, value: string) => AbsolutePath; export declare const makeRelativePath: (path: Path.Path, value: string) => Option.Option; export declare const makeWorkspaceRelativePath: (path: Path.Path, workspaceRoot: AbsolutePath | string, target: string) => Option.Option; export declare const makeWorkspaceRelativeSourcePath: (path: Path.Path, workspaceRoot: AbsolutePath | string, target: string) => Option.Option; /** * Whether a resolved target path stays within a base directory. * * Uses a path-separator boundary check so a sibling directory sharing a name * prefix is not mistaken for a child. */ export declare const isPathSafe: (path: Path.Path, base: string, target: string) => boolean; /** Resolve a child against its base and reject paths that escape it. */ export declare const safeChildPath: (path: Path.Path, base: string, target: string) => Option.Option; //# sourceMappingURL=path-types.d.ts.map