import express from 'express';
import { TransportChannel } from './channel.js';
import { PeerFactory } from './peer.js';
import { RoomManager } from './room-manager.js';
import { UserManager } from './user-manager.js';
import { CredentialsManager } from './credentials-manager.js';
import { User } from './types.js';
import { AuthEndpoint } from './auth-endpoints/auth-endpoint.js';
import { Logger } from './utils/logging.js';
import { Configuration } from './utils/configuration.js';
import { PeerManager } from './peer-manager.js';
export declare const getLocalFilename: (referenceUrl: string | URL) => string;
export declare const getLocalDirectory: (referenceUrl: string | URL) => string;
export interface CollaborationServerOptions {
    port: number;
    hostname: string;
}
export declare class CollaborationServer {
    protected readonly roomManager: RoomManager;
    protected readonly userManager: UserManager;
    protected readonly credentials: CredentialsManager;
    protected readonly peerFactory: PeerFactory;
    protected readonly peerManager: PeerManager;
    protected logger: Logger;
    protected configuration: Configuration;
    protected readonly authEndpoints: AuthEndpoint[];
    startServer(opts: CollaborationServerOptions): void;
    protected connectChannel(headers: Record<string, string | undefined>, channel: TransportChannel): Promise<void>;
    protected getUserFromAuth(req: express.Request): Promise<User | undefined>;
    protected setupApiRoute(): express.Express;
}
//# sourceMappingURL=collaboration-server.d.ts.map