/**
 * Folder-to-profile routing rules.
 *
 * Used by the `ccs rule` command and the generated claude() shell wrapper to
 * pick a profile based on the directory the user launches Claude from.
 * Matching is "longest path wins": the most specific matching rule is used,
 * and when nothing matches the wrapper falls back to plain `claude`.
 */
export interface FolderRule {
    /** Absolute folder path this rule applies to (prefix match on path boundaries). */
    path: string;
    /** Profile name to launch when the current directory is inside `path`. */
    profile: string;
}
/**
 * Coerce arbitrary parsed YAML into a clean FolderRule[].
 * Drops malformed entries; returns undefined when nothing valid remains so the
 * serializer can omit an empty `rules:` block.
 */
export declare function normalizeFolderRules(value: unknown): FolderRule[] | undefined;
/**
 * Resolve the matching rule for a target path using "longest path wins".
 * A rule matches when the target equals its path or sits inside it on a path
 * boundary (so /a/b does not match /a/bc).
 */
export declare function matchFolderRule(rules: readonly FolderRule[], targetPath: string): FolderRule | undefined;
//# sourceMappingURL=rules.d.ts.map