59 lines
2.1 KiB
TypeScript
59 lines
2.1 KiB
TypeScript
import { CapabilityPoller } from "./capabilityPoller.ts";
|
|
import { type IHttpOpts, type MatrixHttpApi } from "./http-api/index.ts";
|
|
import type { Logger } from "./logger.ts";
|
|
export interface ICapability {
|
|
enabled: boolean;
|
|
}
|
|
export interface IChangePasswordCapability extends ICapability {
|
|
}
|
|
export interface IThreadsCapability extends ICapability {
|
|
}
|
|
export interface IGetLoginTokenCapability extends ICapability {
|
|
}
|
|
export interface ISetDisplayNameCapability extends ICapability {
|
|
}
|
|
export interface ISetAvatarUrlCapability extends ICapability {
|
|
}
|
|
export interface IProfileFieldsCapability extends ICapability {
|
|
}
|
|
export declare enum RoomVersionStability {
|
|
Stable = "stable",
|
|
Unstable = "unstable"
|
|
}
|
|
export interface IRoomVersionsCapability {
|
|
default: string;
|
|
available: Record<string, RoomVersionStability>;
|
|
}
|
|
/**
|
|
* A representation of the capabilities advertised by a homeserver as defined by
|
|
* [Capabilities negotiation](https://spec.matrix.org/v1.6/client-server-api/#get_matrixclientv3capabilities).
|
|
*/
|
|
export interface Capabilities {
|
|
[key: string]: any;
|
|
"m.change_password"?: IChangePasswordCapability;
|
|
"m.room_versions"?: IRoomVersionsCapability;
|
|
"io.element.thread"?: IThreadsCapability;
|
|
"m.get_login_token"?: IGetLoginTokenCapability;
|
|
"org.matrix.msc3882.get_login_token"?: IGetLoginTokenCapability;
|
|
"m.set_displayname"?: ISetDisplayNameCapability;
|
|
"m.set_avatar_url"?: ISetAvatarUrlCapability;
|
|
"uk.tcpip.msc4133.profile_fields"?: IProfileFieldsCapability;
|
|
/**
|
|
* Since Matrix v1.16
|
|
*/
|
|
"m.profile_fields"?: IProfileFieldsCapability;
|
|
}
|
|
/**
|
|
* Manages storing and periodically refreshing the server capabilities.
|
|
*/
|
|
export declare class ServerCapabilities extends CapabilityPoller<Capabilities> {
|
|
constructor(logger: Logger, http: MatrixHttpApi<IHttpOpts & {
|
|
onlyData: true;
|
|
}>);
|
|
/**
|
|
* Fetches the latest server capabilities from the homeserver and returns them, or rejects
|
|
* on failure.
|
|
*/
|
|
fetch: () => Promise<Capabilities>;
|
|
}
|
|
//# sourceMappingURL=serverCapabilities.d.ts.map
|