import type { Command } from 'commander';
import type { SessionMeta } from '../lib/session/types.js';
import { type PublishOptions } from '../lib/share/publish.js';
interface ShareOptions {
    public?: boolean;
    slug?: string;
    label?: string;
    expire?: string;
    reasoning: string;
    force?: boolean;
    cover?: boolean;
}
/** `session-<shortId>` — stable per session, so re-sharing updates the same URL. */
export declare function defaultSessionSlug(session: SessionMeta): string;
/**
 * Map the command's flags onto {@link PublishOptions}.
 *
 * Extracted so the defaults are testable directly. `unlisted` in particular is the
 * security-relevant one — it inverts the parent command's public-by-default
 * behavior, and a test that re-implements this mapping would still pass with it
 * flipped.
 */
export declare function buildSharePublishOptions(session: SessionMeta, options: Pick<ShareOptions, 'public' | 'slug' | 'label' | 'expire' | 'force' | 'cover'>): PublishOptions;
export declare function registerSessionsShareCommand(sessionsCmd: Command): void;
export {};
