/** * Drives Google Calendar's settings page * (https://calendar.google.com/calendar/u/0/r/settings) to capture a * calendar's private iCal address. * * The address is a credential: anyone holding it can read the calendar. It is * therefore returned only in the dedicated `icsUrl` field of the `ok` result * and never appears in `detail`, `problem`, or `fix`, not even a truncated or * partially-redacted form, since even a fragment plus the known URL shape * meaningfully narrows the secret. */ import type { GoogleBrowserPort } from './types.js'; export type CalendarIcsReason = 'sign-in-required' | 'calendar-not-found' | 'integrate-panel-not-found' | 'ics-address-not-found' | 'ics-address-malformed'; export interface CalendarIcsOk { readonly kind: 'ok'; readonly detail: string; readonly icsUrl: string; } export interface CalendarIcsNeedsHuman { readonly kind: 'needs-human'; readonly reason: CalendarIcsReason; readonly problem: string; readonly fix: string; } export interface CalendarIcsFailed { readonly kind: 'failed'; readonly reason: CalendarIcsReason; readonly problem: string; readonly fix: string; } export type CaptureIcsAddressResult = CalendarIcsOk | CalendarIcsNeedsHuman | CalendarIcsFailed; export interface CaptureIcsAddressOptions { /** When omitted, the first calendar entry in the settings panel is used. */ readonly calendarName?: string; } /** * Captures the private iCal address for one calendar. Never throws for * sign-in-needed or a missing calendar/panel; those come back as typed * results. */ export declare function captureIcsAddress(browser: GoogleBrowserPort, options?: CaptureIcsAddressOptions): Promise; //# sourceMappingURL=calendar-ics-flow.d.ts.map