/**
 * Parse Harness UI URLs to extract identifiers (org, project, resource type, resource ID, etc.).
 * Enables users to paste a Harness URL instead of manually specifying individual parameters.
 */
export interface ParsedHarnessUrl {
    account_id: string;
    resource_scope?: "account" | "org" | "project";
    org_id?: string;
    project_id?: string;
    module?: string;
    resource_type?: string;
    resource_id?: string;
    pipeline_id?: string;
    execution_id?: string;
    agent_id?: string;
    repo_id?: string;
    pr_number?: string;
    comment_id?: string;
    registry_id?: string;
    artifact_id?: string;
    environment_id?: string;
    step_id?: string;
    stage_id?: string;
    stage_execution_id?: string;
}
/**
 * Parse a Harness UI URL and extract identifiers.
 *
 * Handles patterns like:
 * - .../orgs/{org}/projects/{project}/pipelines/{id}/pipeline-studio
 * - .../orgs/{org}/projects/{project}/pipelines/{id}/executions/{execId}/pipeline
 * - .../module/ci/orgs/{org}/projects/{project}/...
 * - .../all/cd/orgs/{org}/projects/{project}/...
 * - .../all/settings/connectors/{id}
 * - Vanity domains (e.g. ancestry.harness.io)
 * - Path-only URLs (e.g. `/ng/account/<id>/...`) — the Harness UI's copy-link
 *   actions sometimes produce these.
 */
export declare function parseHarnessUrl(urlStr: string): ParsedHarnessUrl;
export interface ApplyUrlDefaultsOptions {
    includeResourceScope?: boolean;
}
/**
 * If `url` is provided, parse it and merge extracted values into args as defaults.
 * Explicit args always take precedence over URL-derived values.
 * Returns a new object (does not mutate the original).
 */
export declare function applyUrlDefaults(args: Record<string, unknown>, url?: unknown, options?: ApplyUrlDefaultsOptions): Record<string, unknown>;
//# sourceMappingURL=url-parser.d.ts.map