import type { MessageChannel } from '../engine/types';

export interface ProviderResult {
  success: boolean;
  providerMessageId?: string;
  status: string;
  errorCode?: string;
  errorMessage?: string;
  rawResponse?: unknown;
  retryable: boolean;
}

export interface MessageProvider {
  channel: MessageChannel;
  send(input: {
    to: string;
    subject?: string;
    body: string;
    meta?: Record<string, unknown>;
    dryRun?: boolean;
  }): Promise<ProviderResult>;
}
