# Automatic replay

Public types and methods for automatic replay.

[Read the automatic queue replay guide](/docs/automatic-replay/). Signatures below come from the published SDK declarations. Access SDK services through `db`; use their constructors only when integrating at a lower level.

## AutoReplayOptions


```ts
interface AutoReplayOptions {
  initial?: boolean;
  retryDelay?: number;
  maxRetryDelay?: number;
  onResult?: (result: Result<WriteReceipt[]>) => void;
  onError?: (error: NostrbaseError, result: Result<WriteReceipt[]>) => void;
}
```

## AutoReplayStatus


```ts
interface AutoReplayStatus {
  running: boolean;
  inFlight: boolean;
  failures: number;
  nextRetryAt: number | null;
  lastResult?: Result<WriteReceipt[]>;
}
```


## Supporting declarations

These types appear in public signatures but are not package exports.

### AutoReplayHost


```ts
interface AutoReplayHost {
  auth: {
    readonly revision: number;
    readonly revisionSignal: AbortSignal;
    readonly revisionSettled: boolean;
    onRevisionSettled(callback: () => void): {
      unsubscribe(): void;
    };
    getSession(): Promise<Result<Session>>;
    onAuthStateChange(
      callback: (event: AuthChange, session: Session | null) => void,
    ): {
      data: {
        subscription: {
          unsubscribe(): void;
        };
      };
    };
  };
  ready(): Promise<void>;
  signal(signal?: AbortSignal): AbortSignal;
  pending(pubkey: string): Promise<boolean>;
  flush(signal: AbortSignal): Promise<Result<WriteReceipt[]>>;
  watchReconnect?(wake: () => void): () => void;
}
```
