import type { Session } from "@stigmer/protos/ai/stigmer/agentic/session/v1/api_pb";
/** Options for {@link useSessionList}. */
export interface UseSessionListOptions {
    /** Maximum sessions to return. Defaults to 50. */
    pageSize?: number;
    /** Optional tag filter. */
    tags?: string[];
}
/** Return value of {@link useSessionList}. */
export interface UseSessionListReturn {
    /** The fetched list of Sessions, empty while loading or on error. */
    readonly sessions: readonly Session[];
    /** `true` while the initial fetch is in flight. */
    readonly isLoading: boolean;
    /** `true` while a background refetch is in flight. */
    readonly isRefetching: boolean;
    /** Error from the last failed request, or `null` when healthy. */
    readonly error: Error | null;
    /** Discard cached data and re-fetch the session list from the server. */
    readonly refetch: () => void;
}
/**
 * Data hook that fetches a paginated list of {@link Session} entries.
 *
 * Org scoping is handled at the transport level (auth context),
 * consistent with other data hooks. Call `refetch()` to re-query
 * after creating a session or navigating between views.
 *
 * Returns up to `pageSize` sessions (default 50). Full cursor-based
 * pagination can be added later without breaking the return type.
 *
 * @example
 * ```tsx
 * function SessionSidebar() {
 *   const { sessions, isLoading, refetch } = useSessionList({ pageSize: 25 });
 *
 *   if (isLoading) return <Skeleton />;
 *
 *   return (
 *     <ul>
 *       {sessions.map((s) => (
 *         <li key={s.metadata?.id}>
 *           {s.status?.subject ?? "Untitled"}
 *         </li>
 *       ))}
 *     </ul>
 *   );
 * }
 * ```
 */
export declare function useSessionList(options?: UseSessionListOptions): UseSessionListReturn;
//# sourceMappingURL=useSessionList.d.ts.map