// This file was generated by [ts-rs](https://github.com/Aleph-Alpha/ts-rs). Do not edit this file manually.
import type { UploadedMarker } from "./UploadedMarker";

/**
 * One workspace's binding to an HF Hub bucket. Persisted on
 * [`crate::session::WorkspaceSession::coder_hub_bucket`].
 */
export type CoderHubBucket = { 
/**
 * HF namespace the bucket lives under — either the user's
 * login or one of their orgs' names. Used in every Hub URL
 * the runner builds (`/api/buckets/<namespace>/<name>/...`).
 */
namespace: string, 
/**
 * Bucket name. Together with `namespace`, uniquely
 * identifies the bucket on the Hub.
 */
name: string, 
/**
 * Visibility at create time. Carried for display only — the
 * Hub is the source of truth; flipping visibility on the
 * web UI doesn't update this flag, which is fine because the
 * runner never reads it for an access decision (the OAuth
 * `contribute-repos` scope is the access fence).
 */
private: boolean, 
/**
 * When `true`, the runner enqueues a sync after every
 * `TurnEnded` for sessions in this workspace. Default
 * `false` after connect — the modal nudges the user to flip
 * it on but doesn't auto-flip, so connecting a bucket
 * doesn't trigger surprise uploads.
 */
autosync: boolean, 
/**
 * `session_id → marker` of the last successful push. Used by
 * the sync loop to skip an upload when the local JSONL
 * length matches `marker.bytes` (i.e. nothing has been
 * appended since the last sync). Cleared on disconnect.
 */
uploaded: { [key in string]: UploadedMarker }, };
