Files
Signal-Desktop/ts/types/CallLink.ts
2024-02-22 13:19:50 -08:00

34 lines
952 B
TypeScript

// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import type { ReadonlyDeep } from 'type-fest';
import { z } from 'zod';
import type { CallLinkRestrictions as RingRTCCallLinkRestrictions } from '@signalapp/ringrtc';
import type { ConversationType } from '../state/ducks/conversations';
export type CallLinkConversationType = ReadonlyDeep<
Omit<ConversationType, 'type'> & {
type: 'callLink';
storySendMode?: undefined;
acknowledgedGroupNameCollisions?: undefined;
}
>;
// Must match `CallLinkRestrictions` in @signalapp/ringrtc
export enum CallLinkRestrictions {
None = 0,
AdminApproval = 1,
Unknown = 2,
}
export const callLinkRestrictionsSchema = z.nativeEnum(
CallLinkRestrictions
) satisfies z.ZodType<RingRTCCallLinkRestrictions>;
export type CallLinkType = Readonly<{
roomId: string;
rootKey: string;
name: string;
restrictions: CallLinkRestrictions;
expiration: number;
}>;