/**
 * ParsedMatrixUri - URI parser per federation DESIGN.md SSOT
 *
 * NOTE: Named ParsedMatrixUri (not MatrixUri) to avoid conflict with
 * existing MatrixUri interface in ../uri.ts
 *
 * Format per federation DESIGN.md section 2.1:
 *   <root>/<mount...>/<component.path>.<plane>.<message>
 *
 * IMPORTANT: The root is the FULL authority segment (e.g., "daemon@matrix-3").
 * The @ character is part of the root identity, NOT a principal separator.
 * This matches federation DESIGN.md - the canonical SSOT for this package.
 *
 * Component path vs mount distinction:
 * - Mount segments use "/" separator
 * - Component path uses "." separator as FINAL path segment
 * - Last segment with dots is component path; rest is mount
 */
import { RootId } from './root_id';
export interface ParsedMatrixUriComponents {
    root: RootId;
    /** @deprecated Use root instead */
    realm?: RootId;
    principal?: string;
    mount?: string;
    componentPath?: string;
    query?: Map<string, string>;
}
export declare class ParsedMatrixUri {
    private readonly _root;
    private readonly _principal;
    private readonly _mount;
    private readonly _componentPath;
    private readonly _query;
    private constructor();
    /**
     * Parse a Matrix URI string.
     * Throws if the URI is malformed.
     */
    static parse(uri: string): ParsedMatrixUri;
    /**
     * Try to parse a URI, returning null if invalid.
     */
    static tryParse(uri: string): ParsedMatrixUri | null;
    /**
     * Build a ParsedMatrixUri from components.
     */
    static build(components: ParsedMatrixUriComponents): ParsedMatrixUri;
    get root(): RootId;
    /** @deprecated Use .root instead */
    get realm(): RootId;
    get principal(): string | undefined;
    get mount(): string | undefined;
    get componentPath(): string | undefined;
    get query(): Map<string, string>;
    /**
     * Get the exec query parameter if present.
     */
    get exec(): string | undefined;
    /**
     * Get the full path (mount + component path).
     */
    get fullPath(): string;
    /**
     * Serialize back to URI string.
     */
    toString(): string;
    toJSON(): {
        root: string;
        /** @deprecated */
        realm: string;
        principal?: string;
        mount?: string;
        componentPath?: string;
        query?: Record<string, string>;
    };
}
export declare function isParsedMatrixUri(value: unknown): value is ParsedMatrixUri;
//# sourceMappingURL=matrix_uri.d.ts.map