import type { Channel, CreateChannelRequest, Session, UpdateChannelRequest } from "@opengeni/sdk"; import { type ClientOverride } from "../provider.js"; export type UseChannelsOptions = ClientOverride & { pollIntervalMs?: number | undefined; enabled?: boolean | undefined; }; export type UseChannelsResult = { channels: Channel[]; loading: boolean; error: Error | null; refresh: () => Promise; create: (request: CreateChannelRequest) => Promise; update: (channelId: string, request: UpdateChannelRequest) => Promise; reorder: (channelIds: string[]) => Promise; remove: (channelId: string) => Promise; /** Re-file a session into a channel; null moves it back to the inbox. */ moveSession: (sessionId: string, channelId: string | null) => Promise; mutating: boolean; mutationError: Error | null; clearMutationError: () => void; }; /** * Workspace-shared channels: rail organization for root sessions * ("workstreams") by work type. Pure metadata — filing a session into a * channel never affects execution. */ export declare function useChannels(options?: UseChannelsOptions): UseChannelsResult;