import type { ChannelStatus, ModeratorStatus } from "../../types.ts";

export type AdapterSessionStatus = {
  valid: boolean;
  accountUsername: string;
  kickUserId: string;
  expiresAt: string | null;
  error?: string;
};

export interface KickSessionAdapter {
  initialize(): Promise<void>;
  close(): Promise<void>;
  testSession(): Promise<AdapterSessionStatus>;
  sendChatMessage(channel: ChannelStatus, message: string, replyToMessageId?: string | null): Promise<void>;
  checkModeratorRole(channel: ChannelStatus): Promise<ModeratorStatus>;
}
