# Type Alias: SyncMessage

```ts
type SyncMessage = V & (
  | {
  holds?: "all" | ReadonlyArray<string>;
  reply?: boolean;
  sums: Readonly<Record<string, string>>;
  type: "hello";
}
  | {
  collection: string;
  id: number;
  message: string;
  type: "reconcile";
}
  | {
  held?: false;
  id: number;
  message: string;
  type: "reconciled";
}
  | {
  id: number;
  ids: ReadonlyArray<string>;
  type: "want";
}
  | {
  id?: number;
  type: "versions";
  versions: ReadonlyArray<Version>;
}
  | {
  type: "push-update";
  version: Version;
}
  | {
  ids: ReadonlyArray<string>;
  type: "stored";
}
  | {
  chunks?: readonly [number, number];
  hash: string;
  id: number;
  list?: true;
  type: "want-file";
}
  | {
  at: number;
  bytes: string;
  chunk: number | "list";
  hash: string;
  id: number;
  type: "file";
}
  | {
  hash: string;
  id: number;
  missing: ReadonlyArray<number | "list">;
  type: "file-done";
});
```

Defined in: [packages/core/src/sync/sync-messages.ts:19](https://github.com/leifriksheim/minca/blob/main/core/src/sync/sync-messages.ts#L19)
