import type { LocalSecretEnvelope, LocalSecretReference, } from '../domain/localSecret'; export interface AppendLocalSecretEnvelopeCommand { envelope: LocalSecretEnvelope; expectedCurrentVersion: number; } export type AppendLocalSecretEnvelopeResult = | { status: 'inserted'; envelope: LocalSecretEnvelope } | { status: 'existing'; envelope: LocalSecretEnvelope }; export interface LocalSecretEnvelopeRepository { append( command: AppendLocalSecretEnvelopeCommand, ): Promise; findByMutation( projectId: string, name: string, mutationId: string, ): Promise; resolveMany( references: readonly LocalSecretReference[], ): Promise; }