/**
 * Input validation utilities for CLI arguments.
 * Prevents path traversal and injection attacks.
 */
/**
 * Validate an owner or repo name segment.
 * Only allows word chars, dots, and hyphens.
 */
export declare function validateRepoSegment(segment: string): boolean;
/**
 * Parse a GitHub source — accepts both `owner/repo` shorthand and full GitHub URLs.
 * Handles .git suffix, trailing slashes, and extra path segments (e.g. /tree/main/...).
 * Returns null for invalid or non-GitHub input.
 */
export declare function parseGitHubSource(source: string): {
    owner: string;
    repo: string;
} | null;
/**
 * Validate a skill name.
 * Rejects path traversal (../, ..\) and null bytes.
 */
export declare function validateSkillName(name: string): boolean;
export type IdentifierFormat = {
    type: "owner-repo";
    owner: string;
    repo: string;
} | {
    type: "owner-repo-skill";
    owner: string;
    repo: string;
    skill: string;
} | {
    type: "url";
} | {
    type: "flat";
    name: string;
};
/**
 * Classify a source identifier into its format type.
 * Used for UX messaging and guardrails — does NOT validate existence.
 *
 * - `owner/repo` → owner-repo
 * - `owner/repo/skill` → owner-repo-skill
 * - URLs (http://, github.com/) → url
 * - Everything else → flat (ambiguous, registry lookup)
 */
export declare function classifyIdentifier(source: string): IdentifierFormat;
