import type { PublishDef, PublishRecordBase, PublishStatsRecordBase } from './index.ts';
export interface TelegramPublishDef extends PublishDef<"telegram"> {
    publish: TelegramPublishRecord;
    stats: TelegramPublishStatsRecord;
}
export type TelegramPublishType = "message" | "photo" | "video" | "live_video";
export interface TelegramPublishDraft {
    message?: string;
    type?: TelegramPublishType;
}
export interface TelegramPublishPublished {
    message?: string;
}
export interface TelegramPublishRemoteBase {
    chatId: string;
    chatUsername?: string;
}
export interface TelegramPublishMessageRemote extends TelegramPublishRemoteBase {
    type: "message";
    id: string | number;
}
export interface TelegramPublishMediaRemote extends TelegramPublishRemoteBase {
    type: "photo" | "video";
    id: string | number;
    renderQuery?: unknown;
}
export interface TelegramPublishLiveRemote extends TelegramPublishRemoteBase {
    type: "live_video";
    callId: string;
    callAccessHash: string;
    rtmpUrl: string;
}
export type TelegramPublishRemote = TelegramPublishMessageRemote | TelegramPublishMediaRemote | TelegramPublishLiveRemote;
export interface TelegramPublishRetrieved {
    message?: string;
}
export interface TelegramPublishStreamStats {
    state?: "LIVE" | "UNPUBLISHED" | "VOD";
    sending?: boolean;
}
export interface TelegramPublishDefaults {
    type?: TelegramPublishType;
    message?: string;
    renderPreset?: unknown;
}
export interface TelegramPublishRecord extends PublishRecordBase {
    type?: "telegram";
    targetChatId?: string;
    draft?: TelegramPublishDraft;
    published?: TelegramPublishPublished;
    remote?: TelegramPublishRemote;
}
export interface TelegramPublishStatsRecord extends PublishStatsRecordBase {
    defaults?: TelegramPublishDefaults;
    retrieved?: TelegramPublishRetrieved;
    stream?: TelegramPublishStreamStats;
}
