/**
 * Interface for classes that actually produce permalinks (strings).
 * TODO: Convert this to a real TypeScript interface
 */
export default class PermalinkConstructor {
    forEvent(roomId: string, eventId: string, serverCandidates?: string[]): string;
    forRoom(roomIdOrAlias: string, serverCandidates?: string[]): string;
    forUser(userId: string): string;
    forEntity(entityId: string): string;
    isPermalinkHost(host: string): boolean;
    parsePermalink(fullUrl: string): PermalinkParts;
}
export declare class PermalinkParts {
    readonly roomIdOrAlias: string | null;
    readonly eventId: string | null;
    readonly userId: string | null;
    readonly viaServers: string[] | null;
    constructor(roomIdOrAlias: string | null, eventId: string | null, userId: string | null, viaServers: string[] | null);
    static forUser(userId: string): PermalinkParts;
    static forRoom(roomIdOrAlias: string, viaServers?: string[]): PermalinkParts;
    static forEvent(roomId: string, eventId: string, viaServers?: string[]): PermalinkParts;
    get primaryEntityId(): string | null;
}
