import { RpcTarget } from 'capnweb';

type ActivityOrderField = "startDate" | "distanceMeters" | "movingTimeSeconds" | "title";
interface ActivityFilter {
    /** Filter by activity year Integer. */
    "year"?: number;
    /** Filter by Strava sport type */
    "sportType"?: string;
    /** Case-insensitive activity title search */
    "query"?: string;
}
type MovieOrderField = "releaseDate" | "year" | "addedAt" | "title";
interface MovieFilter {
    /** Filter by movie or TV series */
    "type"?: "movie" | "tv";
    /** Filter by release year Integer. */
    "year"?: number;
    /** Filter by genre */
    "genre"?: string;
    /** Filter by director */
    "director"?: string;
    /** Filter by cast member */
    "actor"?: string;
    /** Case-insensitive title search */
    "query"?: string;
}
type PlaceOrderField = "name";
interface PlaceFilter {
    /** Filter by city */
    "city"?: string;
    /** Filter by country */
    "country"?: string;
    /** Filter by category */
    "category"?: "food" | "coffee" | "bars" | "nature" | "entertainment" | "lodging" | "other";
    /** Filter by neighborhood */
    "neighborhood"?: string;
    /** Case-insensitive search across place name and location metadata */
    "query"?: string;
}
type EventOrderField = "startsAt" | "addedAt" | "title";
interface EventFilter {
    /** Filter by concert or sports event */
    "type"?: "concert" | "sports";
    /** Filter by city */
    "city"?: string;
    /** Filter by event year Integer. */
    "year"?: number;
    /** Search title, venue, participants, league, and location */
    "query"?: string;
}
type SportingEventOrderField = "date" | "title" | "sport" | "league";
interface SportingEventFilter {
    /** Filter by team name or abbreviation */
    "team"?: string;
    /** Filter by sport */
    "sport"?: string;
    /** Filter by league or competition */
    "league"?: string;
    /** Filter by local event year Integer. */
    "year"?: number;
    /** Filter by venue city */
    "city"?: string;
    /** Filter by venue name */
    "venue"?: string;
    /** Filter by in-person or watch experience */
    "experience"?: "in-person" | "watch";
    /** Filter by planned or completed experience */
    "experienceStatus"?: "planned" | "completed";
    /** Normalized search across teams, competition, venue, date, and notes */
    "query"?: string;
}
type MusicItemOrderField = "addedAt" | "releaseDate" | "title" | "relevance";
interface MusicItemFilter {
    /** Filter by a canonical music genre */
    "genre"?: "Afrobeats" | "Ambient" | "Blues" | "Classical" | "Country" | "Dance" | "Electronic" | "Folk" | "Funk" | "Hip-Hop" | "House" | "Jazz" | "Latin" | "Metal" | "Pop" | "Punk" | "R&B" | "Reggae" | "Rock" | "Soul";
    /** Filter by music type */
    "type"?: "album" | "playlist" | "mix" | "track";
    /** Normalized multi-token search across public title, artist, notes, genre, path, and source URL fields */
    "query"?: string;
}
type ConcertOrderField = "startDate" | "addedAt" | "title";
interface ConcertFilter {
    /** Filter by concert year Integer. */
    "year"?: number;
    /** Filter by performer name */
    "artist"?: string;
    /** Filter by venue name */
    "venue"?: string;
    /** Filter by venue city */
    "city"?: string;
    /** Search titles, artists, venues, tours, notes, and setlists */
    "query"?: string;
}
type VideoOrderField = "addedAt" | "releaseDate" | "title";
interface VideoFilter {
    /** Filter by category */
    "category"?: "music-video" | "live-performance" | "music-making" | "music-culture" | "skate" | "basketball" | "sports" | "tech-talk" | "technology" | "architecture-design" | "documentary" | "comedy" | "nature" | "health-fitness" | "business" | "politics" | "culture" | "other";
    /** Case-insensitive title search */
    "query"?: string;
}
type PodcastOrderField = "addedAt" | "releaseDate";
interface PodcastFilter {
    /** Filter by podcast show name */
    "show"?: string;
    /** Case-insensitive search across podcast text fields */
    "query"?: string;
}
type TweetOrderField = "createdAt" | "addedAt";
interface TweetFilter {
    /** Filter by tweet author */
    "author"?: string;
    /** Case-insensitive search across tweet text fields */
    "query"?: string;
}
type CodeActivityOrderField = "occurredAt" | "addedAt" | "score" | "title";
interface CodeActivityFilter {
    /** Filter by activity kind */
    "kind"?: string;
    /** Filter by repository full name (owner/repo) */
    "repo"?: string;
    /** Filter by activity year Integer. */
    "year"?: number;
    /** Case-insensitive search across title, repo, and reasons */
    "query"?: string;
}
type PhotoOrderField = "date";
interface PhotoFilter {
    /** Filter by year Integer. */
    "year"?: number;
    /** Filter by month (1-12) Integer. Minimum 1. Maximum 12. */
    "month"?: number;
}
type BookOrderField = "dateRead" | "purchasedAt" | "addedAt" | "year" | "rating" | "title" | "author";
interface BookFilter {
    /** Filter by author */
    "author"?: string;
    /** Case-insensitive search across book fields */
    "query"?: string;
}
type WorkTimelineOrderField = "date" | "title" | "company" | "id";
interface WorkTimelineFilter {
    /** Filter by timeline year Integer. */
    "year"?: number;
    /** Filter by work, employment, or education record kind */
    "kind"?: "work" | "employment" | "education";
    /** Filter by company */
    "company"?: string;
}
type ReadingItemOrderField = "publishedAt" | "addedAt" | "title" | "domain";
interface ReadingItemFilter {
    /** Case-insensitive title search */
    "query"?: string;
    /** Filter by normalized link domain */
    "domain"?: string;
}
type BlogPostOrderField = "date" | "title";
interface BlogPostFilter {
    /** Case-insensitive search across blog title and description */
    "query"?: string;
}
type WritingItemOrderField = "date" | "title" | "source";
interface WritingItemFilter {
    /** Filter by publication source */
    "source"?: string;
    /** Case-insensitive search across writing fields */
    "query"?: string;
}
type MusicGenre = NonNullable<MusicItemFilter['genre']>;
type VideoCategory = NonNullable<VideoFilter['category']>;
type SearchInput = {
    /** minLength: 1. maxLength: 240. */
    "query": string;
    /** minLength: 1. maxLength: 120. */
    "source"?: string;
    /** minLength: 1. maxLength: 120. */
    "type"?: string;
};
type RecommendationInput = {
    /** minLength: 1. maxLength: 240. */
    "intent": string;
    /** minLength: 1. maxLength: 80. */
    "collection"?: string;
    /** Canonical place category. Requires collection places or an omitted collection; narrows recommendations to matching places. minLength: 1. maxLength: 120. */
    "category"?: string;
    /** minimum: 1. maximum: 10. default: 5. */
    "limit"?: number;
};
type RelatedInput = {
    /** minLength: 1. maxLength: 240. */
    "intent"?: string;
    /** minimum: 1. maximum: 10. default: 5. */
    "limit"?: number;
};
type MovieSummaryOptions = {
    /** minimum: 3. maximum: 8. default: 6. */
    "exampleLimit"?: number;
};
type MusicSearchInput = {
    /** minLength: 0. maxLength: 240. default: "". */
    "query"?: string;
    /** minLength: 0. maxLength: 40. default: "". */
    "type"?: string;
    /** minLength: 0. maxLength: 80. default: "". */
    "genre"?: string;
    /** minimum: 1. maximum: 50. default: 20. */
    "limit"?: number;
};
type FeedStreamOptions = {
    /** minimum: 1. maximum: 100. default: 50. */
    "limit"?: number;
};
type ExportOptions = {
    /** default: "ndjson". */
    "format"?: "ndjson" | "csv" | "geojson" | "gpx" | "kml";
    /** minimum: 1. maximum: 5000. */
    "limit"?: number;
};

type TasteStance = 'love' | 'like' | 'curious' | 'avoid';
interface TastePreference {
    stance: TasteStance;
    weight?: number;
}
interface TasteArtist extends TastePreference {
    name: string;
    externalIds?: {
        'spotify-artist'?: string;
    };
}
interface TasteRecording extends TastePreference {
    title: string;
    artist: string;
    externalIds?: {
        isrc?: string;
        'spotify-track'?: string;
    };
}
interface TasteAlbum extends TastePreference {
    title: string;
    artist: string;
    externalIds?: {
        'discogs-master'?: string;
        'discogs-release'?: string;
    };
}
interface TasteGenre extends TastePreference {
    name: string;
}
interface ListenerTasteProfileV1 {
    schemaVersion: '1';
    subject?: {
        canonicalUrl?: string;
        displayName?: string;
    };
    music: {
        artists: TasteArtist[];
        recordings: TasteRecording[];
        albums: TasteAlbum[];
        genres: TasteGenre[];
        notes: string[];
    };
}
interface TasteProfileDocumentV1 {
    profile: ListenerTasteProfileV1;
    canonicalUrl: string;
    generatedAt: string;
    source: {
        type: 'personal-website';
        musicCollection?: string;
        mcpServerCard?: string;
    };
}

declare const INTERSECTION_REASON_CODES: readonly ['recording-id', 'recording-name', 'artist-id', 'artist-name', 'album-id', 'album-name', 'genre', 'semantic', 'avoid'];
type IntersectionReasonCode = (typeof INTERSECTION_REASON_CODES)[number];
interface MusicIntersectionRequestV1 {
    profile: ListenerTasteProfileV1;
    limit: number;
}
interface IntersectionReason {
    code: IntersectionReasonCode;
    label: string;
    strength: number;
}
interface MusicIntersectionResultV1 {
    summary: string;
    matches: Array<{
        canonicalId: `itm_${string}`;
        score: number;
        reasons: IntersectionReason[];
    }>;
    unmatched: {
        artists: number;
        recordings: number;
        albums: number;
        genres: number;
    };
    truncated: boolean;
}

declare const MUSIC_STATION_REASON_CODES: readonly ['profile-affinity', 'session-more', 'intent-adjacent', 'context-adjacent', 'musical-neighbor', 'exploration', 'editorial-core', 'editorial-recurrent', 'underplayed', 'contrast', 'discovery', 'transition-fit'];
type MusicStationReasonCode = (typeof MUSIC_STATION_REASON_CODES)[number];
declare const MUSIC_STATION_CLOCK_ROLES: readonly ['core-opener', 'adjacent', 'deep-cut', 'listener-affinity', 'contrast', 'discovery'];
type MusicStationClockRole = (typeof MUSIC_STATION_CLOCK_ROLES)[number];
declare const MUSIC_STATION_CONTEXT_SIGNALS: readonly ['time-of-day', 'weather', 'daylight', 'season'];
type MusicStationContextSignal = (typeof MUSIC_STATION_CONTEXT_SIGNALS)[number];
interface MusicStationAffinityV1 {
    canonicalId: `itm_${string}`;
    weight: number;
    reasonCodes: IntersectionReasonCode[];
}
interface MusicStationVoteV1 {
    canonicalId: `itm_${string}`;
    direction: 'more' | 'less';
    evidence: 'explicit' | 'completion' | 'early-skip';
    weight: number;
}
interface MusicStationContextV1 {
    timeOfDay: 'dawn' | 'morning' | 'afternoon' | 'evening' | 'night';
    weatherKind: 'clear' | 'cloudy' | 'fog' | 'drizzle' | 'rain' | 'snow' | 'storm' | 'unknown';
    calendarKind: 'weekday' | 'weekend' | 'holiday';
    daylight?: 'day' | 'night' | 'unknown';
    season?: 'spring' | 'summer' | 'autumn' | 'winter' | 'unknown';
}
interface MusicStationPlayV1 {
    canonicalId: `itm_${string}`;
    playedAt: number;
}
interface MusicStationContinuationV1 {
    version: '1';
    played: MusicStationPlayV1[];
    queuedCanonicalIds: Array<`itm_${string}`>;
    position: number;
}
interface MusicStationRequestV1 {
    schemaVersion: '1';
    stationSeed: string;
    affinities: MusicStationAffinityV1[];
    votes: MusicStationVoteV1[];
    hardExclusions: Array<`itm_${string}`>;
    recentCanonicalIds: Array<`itm_${string}`>;
    intent?: string;
    context?: MusicStationContextV1;
    continuation?: MusicStationContinuationV1;
    limit: number;
}
interface MusicStationTrackV1 {
    canonicalId: `itm_${string}`;
    title: string;
    artist: string;
    genres: string[];
    spotifyUri: string;
    spotifyUrl: string;
    itemPath: string;
    reasonCodes: MusicStationReasonCode[];
    programming?: {
        role: MusicStationClockRole;
        rotation: 'core' | 'recurrent' | 'deep-cut' | 'discovery';
    };
}
interface MusicStationSlotDiagnosticV1 {
    position: number;
    role: MusicStationClockRole;
    candidateCount: number;
    shortlistSize: number;
    selectedRank: number | null;
    relaxedRules: Array<'artist-separation' | 'sound-family-separation' | 'album-separation'>;
}
interface MusicStationResultV1 {
    schemaVersion: '1';
    status: 'ready' | 'empty' | 'degraded';
    profile: {
        seedCount: number;
        positiveVoteCount: number;
        negativeVoteCount: number;
        intentApplied: boolean;
        contextApplied: boolean;
    };
    tracks: MusicStationTrackV1[];
    diagnostics: {
        profileVersion: string;
        candidateCount: number;
        eligibleCount: number;
        fallback: boolean;
        cooldownRelaxed?: boolean;
        contextSignals?: MusicStationContextSignal[];
        clock?: string;
        slots?: MusicStationSlotDiagnosticV1[];
    };
}

type PublicWireNullableString = string | null;
type PublicWireNullableNumber = number | null;
type PublicWireMovieTopics = PublicWireBlogPostTopicsAnyOf1 | null;
type PublicWireMovieTopicsItem = "architecture" | "art" | "artificial intelligence" | "basketball" | "business" | "cities" | "creativity" | "culture" | "design" | "food" | "health" | "history" | "internet" | "leadership" | "music" | "nature" | "politics" | "product development" | "science" | "sports" | "technology" | "urbanism" | "work";
type PublicWireMovieThemes = PublicWireBlogPostThemesAnyOf1 | null;
type PublicWireMovieThemesItem = "ambition" | "belonging" | "change" | "community" | "connection" | "craft" | "discovery" | "freedom" | "friendship" | "identity" | "loss" | "memory" | "power" | "resilience" | "transformation";
type PublicWireMovieMoods = PublicWireBlogPostMoodsAnyOf1 | null;
type PublicWireMovieMoodsItem = "atmospheric" | "calm" | "contemplative" | "energizing" | "hopeful" | "intimate" | "joyful" | "melancholic" | "playful" | "tense" | "warm";
type PublicWireMovieTones = PublicWireBlogPostTonesAnyOf1 | null;
type PublicWireMovieTonesItem = "analytical" | "earnest" | "humorous" | "irreverent" | "observational" | "optimistic" | "provocative" | "reflective" | "suspenseful";
type PublicWireMovieStyles = PublicWireBlogPostStylesAnyOf1 | null;
type PublicWireMovieStylesItem = "cinematic" | "conversational" | "documentary" | "experimental" | "immersive" | "minimalist" | "narrative" | "practical" | "technical" | "visual";
type PublicWireMoviePace = "slow" | "measured" | "moderate" | "brisk" | "fast" | "varied" | null;
type PublicWireMovieType = "movie" | "tv";
type PublicWireNullableStringArray = PublicWirePodcastImagesItemPurposes | null;
type PublicWirePlaceCategory = "food" | "coffee" | "bars" | "nature" | "entertainment" | "lodging" | "other";
type PublicWireEventPerformers = Array<PublicWireEventPerformersItem> | null;
type PublicWireEventPerformersItem = {
    name: string;
    role?: string;
};
type PublicWireEventTeams = Array<PublicWireEventTeamsItem> | null;
type PublicWireEventTeamsItem = {
    name: string;
    designation?: PublicWireEventTeamsItemDesignation;
};
type PublicWireEventTeamsItemDesignation = "home" | "away";
type PublicWireSportingEventStatus = "scheduled" | "completed" | "cancelled";
type PublicWireSportingEventExperience = {
    kind: PublicWireSportingEventExperienceKind;
    status: PublicWireSportingEventExperienceStatus;
};
type PublicWireSportingEventExperienceKind = "in-person" | "watch";
type PublicWireSportingEventExperienceStatus = "planned" | "completed";
type PublicWireSportingEventCompetitors = Array<PublicWireSportingEventCompetitorsItem>;
type PublicWireSportingEventCompetitorsItem = {
    designation: PublicWireSportingEventCompetitorsItemDesignation;
    team: PublicWireSportingEventCompetitorsItemTeam;
    score?: number;
    result?: PublicWireSportingEventCompetitorsItemResult;
};
type PublicWireSportingEventCompetitorsItemDesignation = "away" | "home";
type PublicWireSportingEventCompetitorsItemTeam = {
    id: string;
    name: string;
    shortName?: string;
    abbreviation?: string;
    logos?: PublicWireSportingEventCompetitorsItemTeamLogos;
};
type PublicWireSportingEventCompetitorsItemTeamLogos = {
    universal?: string;
    light?: string;
    dark?: string;
};
type PublicWireSportingEventCompetitorsItemResult = "win" | "loss" | "tie";
type PublicWireMusicItemAlbumCanonicalId = `itm_${string}` | null;
type PublicWirePodcastImagesItemPurposes = Array<string>;
type PublicWireBlogPostTopicsAnyOf1 = Array<PublicWireMovieTopicsItem>;
type PublicWireBlogPostThemesAnyOf1 = Array<PublicWireMovieThemesItem>;
type PublicWireBlogPostMoodsAnyOf1 = Array<PublicWireMovieMoodsItem>;
type PublicWireBlogPostTonesAnyOf1 = Array<PublicWireMovieTonesItem>;
type PublicWireBlogPostStylesAnyOf1 = Array<PublicWireMovieStylesItem>;
/** Canonical public Activity wire record shared by the REST and Cap'n Web surfaces. */
type ActivityRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public stravaActivityId value. */
    stravaActivityId: string;
    /** Canonical public embedToken value. */
    embedToken: PublicWireNullableString;
    /** Canonical public routeSummaryPolyline value. */
    routeSummaryPolyline: PublicWireNullableString;
    /** Canonical public title value. */
    title: string;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public url value. */
    url: string;
    /** Canonical public sportType value. */
    sportType: string;
    /** Canonical public startDate value. */
    startDate: string;
    /** Canonical public startDateLocal value. */
    startDateLocal: PublicWireNullableString;
    /** Canonical public timezone value. */
    timezone: PublicWireNullableString;
    /** Canonical public distanceMeters value. */
    distanceMeters: number;
    /** Canonical public movingTimeSeconds value. */
    movingTimeSeconds: number;
    /** Canonical public elapsedTimeSeconds value. */
    elapsedTimeSeconds: number;
    /** Canonical public totalElevationGainMeters value. */
    totalElevationGainMeters: number;
    /** Canonical public averageSpeedMetersPerSecond value. */
    averageSpeedMetersPerSecond: PublicWireNullableNumber;
    /** Canonical public maxSpeedMetersPerSecond value. */
    maxSpeedMetersPerSecond: PublicWireNullableNumber;
    /** Canonical public achievementCount value. */
    achievementCount: PublicWireNullableNumber;
    /** Canonical public trainer value. */
    trainer: boolean;
    /** Canonical public commute value. */
    commute: boolean;
    /** Canonical public manual value. */
    manual: boolean;
    /** Canonical public visibility value. */
    visibility: "everyone";
    /** Canonical public syncedAt value. */
    syncedAt: string;
};
/** Canonical public Movie wire record shared by the REST and Cap'n Web surfaces. */
type MovieRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public type value. */
    type: PublicWireMovieType;
    /** Canonical public year value. */
    year: PublicWireNullableNumber;
    /** Canonical public releaseDate value. */
    releaseDate: PublicWireNullableString;
    /** Canonical public genres value. */
    genres: PublicWireNullableStringArray;
    /** Canonical public directors value. */
    directors: PublicWireNullableStringArray;
    /** Canonical public cast value. */
    cast: PublicWireNullableStringArray;
    /** Canonical public youtubeTrailerUrl value. */
    youtubeTrailerUrl: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
};
/** Canonical public Place wire record shared by the REST and Cap'n Web surfaces. */
type PlaceRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public name value. */
    name: string;
    /** Canonical public placeId value. */
    placeId: string;
    /** Canonical public category value. */
    category: PublicWirePlaceCategory;
    /** Canonical public categories value. */
    categories: Array<PublicWirePlaceCategory>;
    /** Canonical public address value. */
    address: PublicWireNullableString;
    /** Canonical public neighborhood value. */
    neighborhood: PublicWireNullableString;
    /** Canonical public city value. */
    city: PublicWireNullableString;
    /** Canonical public country value. */
    country: PublicWireNullableString;
    /** Canonical public latitude value. */
    latitude: number;
    /** Canonical public longitude value. */
    longitude: number;
    /** Canonical public website value. */
    website: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
    /** Canonical public googleMapsUrl value. */
    googleMapsUrl: string;
    /** Canonical public appleMapsUrl value. */
    appleMapsUrl: string;
    /** Canonical public geoUri value. */
    geoUri: string;
};
/** Canonical public Event wire record shared by the REST and Cap'n Web surfaces. */
type EventRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public type value. */
    type: "concert" | "sports";
    /** Canonical public url value. */
    url: string;
    /** Canonical public startsAt value. */
    startsAt: string;
    /** Canonical public endsAt value. */
    endsAt: PublicWireNullableString;
    /** Canonical public venue value. */
    venue: string;
    /** Canonical public city value. */
    city: PublicWireNullableString;
    /** Canonical public country value. */
    country: PublicWireNullableString;
    /** Canonical public participants value. */
    participants: PublicWireNullableStringArray;
    /** Canonical public performers value. */
    performers: PublicWireEventPerformers;
    /** Canonical public teams value. */
    teams: PublicWireEventTeams;
    /** Canonical public genres value. */
    genres: PublicWireNullableStringArray;
    /** Canonical public league value. */
    league: PublicWireNullableString;
    /** Canonical public status value. */
    status: "scheduled" | "preseason" | "regular-season" | "postseason" | "cancelled" | "postponed" | "rescheduled" | "sold-out" | "other" | null;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public image value. */
    image: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public SportEvent wire record shared by the REST and Cap'n Web surfaces. */
type SportingEventRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public sport value. */
    sport: string;
    /** Canonical public league value. */
    league: string;
    /** Canonical public season value. */
    season: PublicWireNullableString;
    /** Canonical public date value. */
    date: string;
    /** Canonical public startTime value. */
    startTime: PublicWireNullableString;
    /** Canonical public endTime value. */
    endTime: PublicWireNullableString;
    /** Canonical public timeZone value. */
    timeZone: PublicWireNullableString;
    /** Canonical public status value. */
    status: PublicWireSportingEventStatus;
    /** Canonical public experience value. */
    experience: PublicWireSportingEventExperience;
    /** Canonical public venue value. */
    venue: {
        id: string;
        name: string;
        address?: string;
        city?: string;
        region?: string;
        country?: string;
        latitude?: number;
        longitude?: number;
        placeCanonicalId?: `itm_${string}`;
    } | null;
    /** Canonical public competitors value. */
    competitors: PublicWireSportingEventCompetitors;
    /** Canonical public teams value. */
    teams: PublicWireEventTeams;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
    /** Canonical public referenceUrl value. */
    referenceUrl: string;
};
/** Canonical public MusicItem wire record shared by the REST and Cap'n Web surfaces. */
type MusicItemRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public externalLinks value. */
    externalLinks: Array<{
        provider: string;
        relation: "same-as" | "listen" | "purchase" | "appears-on" | "release-group" | "performance" | "official-page";
        resourceType: "recording" | "release" | "master" | "album" | "track" | "video" | "page";
        url: string;
        externalId?: string;
    }>;
    /** Canonical public type value. */
    type: "album" | "playlist" | "mix" | "track";
    /** Canonical public artist value. */
    artist: PublicWireNullableString;
    /** Canonical public album value. */
    album: PublicWireNullableString;
    /** Canonical public albumCanonicalId value. */
    albumCanonicalId: PublicWireMusicItemAlbumCanonicalId;
    /** Canonical public durationSeconds value. */
    durationSeconds: PublicWireNullableNumber;
    /** Canonical public isrc value. */
    isrc: PublicWireNullableString;
    /** Canonical public discNumber value. */
    discNumber: PublicWireNullableNumber;
    /** Canonical public trackNumber value. */
    trackNumber: PublicWireNullableNumber;
    /** Canonical public compositionCanonicalId value. */
    compositionCanonicalId: PublicWireMusicItemAlbumCanonicalId;
    /** Canonical public genres value. */
    genres: Array<"Afrobeats" | "Ambient" | "Blues" | "Classical" | "Country" | "Dance" | "Electronic" | "Folk" | "Funk" | "Hip-Hop" | "House" | "Jazz" | "Latin" | "Metal" | "Pop" | "Punk" | "R&B" | "Reggae" | "Rock" | "Soul"> | null;
    /** Canonical public releaseDate value. */
    releaseDate: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public Concert wire record shared by the REST and Cap'n Web surfaces. */
type ConcertRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public startDate value. */
    startDate: string;
    /** Canonical public endDate value. */
    endDate: PublicWireNullableString;
    /** Canonical public tourName value. */
    tourName: PublicWireNullableString;
    /** Canonical public artists value. */
    artists: Array<{
        name: string;
        role?: "headliner" | "support" | "opener" | "guest" | "festival-bill";
        spotifyUrl?: string;
        spotifyArtistId?: string;
    }>;
    /** Canonical public performers value. */
    performers: PublicWireEventPerformers;
    /** Canonical public genres value. */
    genres: PublicWireNullableStringArray;
    /** Canonical public venue value. */
    venue: {
        name: string;
        address?: string;
        city?: string;
        region?: string;
        country?: string;
        googlePlaceId?: string;
        latitude?: number;
        longitude?: number;
    };
    /** Canonical public venueMapsUrl value. */
    venueMapsUrl: string;
    /** Canonical public flyer value. */
    flyer: {
        image: string;
        alt?: string;
        credit?: string;
        sourceUrl?: string;
        rights?: string;
    } | null;
    /** Canonical public flyerImage value. */
    flyerImage: PublicWireNullableString;
    /** Canonical public setlists value. */
    setlists: Array<{
        performerName: string;
        setlistFmId?: string;
        sourceUrl?: string;
        versionId?: string;
        lastUpdated?: string;
        sets: Array<{
            name?: string;
            encore?: number;
            songs: Array<{
                title: string;
                coverArtist?: string;
                note?: string;
                tape?: boolean;
            }>;
        }>;
    }> | null;
    /** Canonical public sources value. */
    sources: Array<{
        provider: "concert-archives" | "setlist.fm" | "venue" | "artist" | "ticket" | "video" | "other";
        url: string;
        label?: string;
        retrievedAt?: string;
    }> | null;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
};
/** Canonical public Video wire record shared by the REST and Cap'n Web surfaces. */
type VideoRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public url value. */
    url: string;
    /** Canonical public category value. */
    category: "music-video" | "live-performance" | "music-making" | "music-culture" | "skate" | "basketball" | "sports" | "tech-talk" | "technology" | "architecture-design" | "documentary" | "comedy" | "nature" | "health-fitness" | "business" | "politics" | "culture" | "other" | null;
    /** Canonical public releaseDate value. */
    releaseDate: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public Podcast wire record shared by the REST and Cap'n Web surfaces. */
type PodcastRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public showName value. */
    showName: PublicWireNullableString;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public appleUrl value. */
    appleUrl: string;
    /** Canonical public spotifyUrl value. */
    spotifyUrl: string;
    /** Canonical public releaseDate value. */
    releaseDate: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
    /** Canonical public guests value. */
    guests: Array<{
        name: string;
        role?: string;
        canonicalPersonId?: string;
    }> | null;
    /** Canonical public feed value. */
    feed: {
        url: string;
        guid?: string;
        guidSource?: "publisher" | "derived";
        medium?: string;
        updateFrequency?: {
            description: string;
            complete?: boolean;
            startsAt?: string | string;
            recurrenceRule?: string;
        };
        usesPodping?: boolean;
    } | null;
    /** Canonical public episodeGuid value. */
    episodeGuid: PublicWireNullableString;
    /** Canonical public episodeUrl value. */
    episodeUrl: PublicWireNullableString;
    /** Canonical public credits value. */
    credits: Array<{
        name: string;
        role?: string;
        group?: string;
        canonicalPersonId?: string;
        sourceUrl?: string;
        imageUrl?: string;
    }> | null;
    /** Canonical public transcripts value. */
    transcripts: Array<{
        url: string;
        type: string;
        language?: string;
        rel?: "captions";
    }> | null;
    /** Canonical public chapters value. */
    chapters: {
        url: string;
        type: "application/json+chapters";
    } | null;
    /** Canonical public images value. */
    images: Array<{
        url: string;
        alt?: string;
        aspectRatio?: string;
        width?: number;
        height?: number;
        type?: string;
        purposes?: PublicWirePodcastImagesItemPurposes;
    }> | null;
    /** Canonical public license value. */
    license: {
        identifier: string;
        url?: string;
    } | null;
    /** Canonical public funding value. */
    funding: Array<{
        url: string;
        label: string;
    }> | null;
    /** Canonical public soundbites value. */
    soundbites: Array<{
        startTime: number;
        duration: number;
        title?: string;
    }> | null;
    /** Canonical public season value. */
    season: {
        number: number;
        name?: string;
    } | null;
    /** Canonical public episode value. */
    episode: {
        number: number;
        display?: string;
    } | null;
};
/** Canonical public Tweet wire record shared by the REST and Cap'n Web surfaces. */
type TweetRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public author value. */
    author: string;
    /** Canonical public authorName value. */
    authorName: PublicWireNullableString;
    /** Canonical public authorUsername value. */
    authorUsername: PublicWireNullableString;
    /** Canonical public authorProfileImageUrl value. */
    authorProfileImageUrl: PublicWireNullableString;
    /** Canonical public text value. */
    text: PublicWireNullableString;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public url value. */
    url: string;
    /** Canonical public createdAt value. */
    createdAt: PublicWireNullableString;
    /** Canonical public media value. */
    media: Array<{
        type: "photo" | "video" | "animated_gif";
        url?: string;
        previewImageUrl?: string;
        altText?: string;
        width?: number;
        height?: number;
    }> | null;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public Code wire record shared by the REST and Cap'n Web surfaces. */
type CodeActivityRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public activityId value. */
    activityId: string;
    /** Canonical public kind value. */
    kind: "release-published" | "pull-request-merged" | "pull-request-reviewed" | "repository-created" | "repository-publicized" | "repository-starred" | "other";
    /** Canonical public title value. */
    title: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public repo value. */
    repo: string;
    /** Canonical public occurredAt value. */
    occurredAt: string;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public source value. */
    source: "events-api" | "graphql" | "manual";
    /** Canonical public score value. */
    score: number;
    /** Canonical public reasons value. */
    reasons: PublicWirePodcastImagesItemPurposes;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public Photo wire record shared by the REST and Cap'n Web surfaces. */
type PhotoRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public date value. */
    date: string;
    /** Canonical public image value. */
    image: string;
    /** Canonical public alt value. */
    alt: PublicWireNullableString;
    /** Canonical public caption value. */
    caption: PublicWireNullableString;
    /** Canonical public latitude value. */
    latitude: PublicWireNullableNumber;
    /** Canonical public longitude value. */
    longitude: PublicWireNullableNumber;
    /** Canonical public camera value. */
    camera: PublicWireNullableString;
};
/** Canonical public Book wire record shared by the REST and Cap'n Web surfaces. */
type BookRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public image value. */
    image: PublicWireNullableString;
    /** Canonical public author value. */
    author: string;
    /** Canonical public authorSortName value. */
    authorSortName: PublicWireNullableString;
    /** Canonical public additionalAuthors value. */
    additionalAuthors: PublicWireNullableStringArray;
    /** Canonical public contributors value. */
    contributors: Array<{
        name: string;
        role: string;
    }> | null;
    /** Canonical public year value. */
    year: PublicWireNullableNumber;
    /** Canonical public originalPublicationYear value. */
    originalPublicationYear: PublicWireNullableNumber;
    /** Canonical public publicationDate value. */
    publicationDate: PublicWireNullableString;
    /** Canonical public originalPublicationDate value. */
    originalPublicationDate: PublicWireNullableString;
    /** Canonical public originalTitle value. */
    originalTitle: PublicWireNullableString;
    /** Canonical public url value. */
    url: PublicWireNullableString;
    /** Canonical public amazonAsin value. */
    amazonAsin: PublicWireNullableString;
    /** Canonical public goodreadsId value. */
    goodreadsId: PublicWireNullableString;
    /** Canonical public goodreadsUrl value. */
    goodreadsUrl: PublicWireNullableString;
    /** Canonical public goodreadsWorkId value. */
    goodreadsWorkId: PublicWireNullableString;
    /** Canonical public goodreadsWorkUrl value. */
    goodreadsWorkUrl: PublicWireNullableString;
    /** Canonical public goodreadsAverageRating value. */
    goodreadsAverageRating: PublicWireNullableNumber;
    /** Canonical public goodreadsRatingsCount value. */
    goodreadsRatingsCount: PublicWireNullableNumber;
    /** Canonical public goodreadsReviewsCount value. */
    goodreadsReviewsCount: PublicWireNullableNumber;
    /** Canonical public goodreadsRatingsByStar value. */
    goodreadsRatingsByStar: {
        one: number;
        two: number;
        three: number;
        four: number;
        five: number;
    } | null;
    /** Canonical public goodreadsCurrentlyReadingCount value. */
    goodreadsCurrentlyReadingCount: PublicWireNullableNumber;
    /** Canonical public goodreadsWantToReadCount value. */
    goodreadsWantToReadCount: PublicWireNullableNumber;
    /** Canonical public goodreadsMetadataFetchedAt value. */
    goodreadsMetadataFetchedAt: PublicWireNullableString;
    /** Canonical public goodreadsShelves value. */
    goodreadsShelves: PublicWireNullableStringArray;
    /** Canonical public goodreadsShelvesWithPositions value. */
    goodreadsShelvesWithPositions: PublicWireNullableStringArray;
    /** Canonical public isbn10 value. */
    isbn10: PublicWireNullableString;
    /** Canonical public isbn13 value. */
    isbn13: PublicWireNullableString;
    /** Canonical public genres value. */
    genres: PublicWireNullableStringArray;
    /** Canonical public language value. */
    language: PublicWireNullableString;
    /** Canonical public series value. */
    series: Array<{
        name: string;
        url?: string;
        position?: string;
    }> | null;
    /** Canonical public awards value. */
    awards: Array<{
        name: string;
        category?: string;
        designation?: string;
        year?: number;
        url?: string;
    }> | null;
    /** Canonical public rating value. */
    rating: PublicWireNullableNumber;
    /** Canonical public dateRead value. */
    dateRead: PublicWireNullableString;
    /** Canonical public purchasedAt value. */
    purchasedAt: PublicWireNullableString;
    /** Canonical public purchaseFormat value. */
    purchaseFormat: "kindle" | "paperback" | "hardcover" | "print" | null;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public publisher value. */
    publisher: PublicWireNullableString;
    /** Canonical public binding value. */
    binding: PublicWireNullableString;
    /** Canonical public pageCount value. */
    pageCount: PublicWireNullableNumber;
    /** Canonical public readCount value. */
    readCount: PublicWireNullableNumber;
    /** Canonical public ownedCopies value. */
    ownedCopies: PublicWireNullableNumber;
    /** Canonical public review value. */
    review: PublicWireNullableString;
    /** Canonical public reviewIsSpoiler value. */
    reviewIsSpoiler: boolean | null;
    /** Canonical public notes value. */
    notes: PublicWireNullableString;
};
/** Canonical public WorkTimelineItem wire record shared by the REST and Cap'n Web surfaces. */
type WorkTimelineRecord = {
    /** Canonical public id value. */
    id: `itm_${string}`;
    /** Canonical public kind value. */
    kind: "work";
    /** Canonical public title value. */
    title: string;
    /** Canonical public sourceUrl value. */
    sourceUrl: string;
    /** Canonical public occurredAt value. */
    occurredAt: string;
    /** Canonical public company value. */
    company: PublicWireNullableString;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public addedAt value. */
    addedAt: string;
} | {
    /** Canonical public id value. */
    id: `itm_${string}`;
    /** Canonical public kind value. */
    kind: "employment";
    /** Canonical public title value. */
    title: string;
    /** Canonical public company value. */
    company: string;
    /** Canonical public startDate value. */
    startDate: string;
    /** Canonical public endDate value. */
    endDate: PublicWireNullableString;
    /** Canonical public itemPath value. */
    itemPath: string;
} | {
    /** Canonical public id value. */
    id: `itm_${string}`;
    /** Canonical public kind value. */
    kind: "education";
    /** Canonical public institution value. */
    institution: string;
    /** Canonical public credential value. */
    credential: PublicWireNullableString;
    /** Canonical public fieldOfStudy value. */
    fieldOfStudy: PublicWireNullableString;
    /** Canonical public startDate value. */
    startDate: PublicWireNullableString;
    /** Canonical public endDate value. */
    endDate: PublicWireNullableString;
    /** Canonical public artifacts value. */
    artifacts: Array<{
        title: string;
        sourceUrl: string;
        occurredAt: string;
    }>;
    /** Canonical public itemPath value. */
    itemPath: string;
};
/** Canonical public Reading wire record shared by the REST and Cap'n Web surfaces. */
type ReadingRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public normalizedUrl value. */
    normalizedUrl: string;
    /** Canonical public siteName value. */
    siteName: PublicWireNullableString;
    /** Canonical public domain value. */
    domain: string;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public image value. */
    image: PublicWireNullableString;
    /** Canonical public author value. */
    author: PublicWireNullableString;
    /** Canonical public publishedAt value. */
    publishedAt: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public metadataSource value. */
    metadataSource: "open_graph" | "twitter_card" | "semantic" | "fallback" | null;
    /** Canonical public fetchedAt value. */
    fetchedAt: PublicWireNullableString;
    /** Canonical public tags value. */
    tags: PublicWireNullableStringArray;
};
/** Canonical public BlogItem wire record shared by the REST and Cap'n Web surfaces. */
type BlogPostRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public slug value. */
    slug: string;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public description value. */
    description: string;
    /** Canonical public date value. */
    date: string;
};
/** Canonical public WritingItem wire record shared by the REST and Cap'n Web surfaces. */
type WritingRecord = {
    /** Canonical public topics value. */
    topics: PublicWireMovieTopics;
    /** Canonical public themes value. */
    themes: PublicWireMovieThemes;
    /** Canonical public moods value. */
    moods: PublicWireMovieMoods;
    /** Canonical public tones value. */
    tones: PublicWireMovieTones;
    /** Canonical public styles value. */
    styles: PublicWireMovieStyles;
    /** Canonical public pace value. */
    pace: PublicWireMoviePace;
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public normalizedUrl value. */
    normalizedUrl: string;
    /** Canonical public source value. */
    source: string;
    /** Canonical public siteName value. */
    siteName: PublicWireNullableString;
    /** Canonical public domain value. */
    domain: string;
    /** Canonical public date value. */
    date: string;
    /** Canonical public publishedAt value. */
    publishedAt: PublicWireNullableString;
    /** Canonical public addedAt value. */
    addedAt: PublicWireNullableString;
    /** Canonical public description value. */
    description: PublicWireNullableString;
    /** Canonical public image value. */
    image: PublicWireNullableString;
    /** Canonical public author value. */
    author: PublicWireNullableString;
    /** Canonical public metadataSource value. */
    metadataSource: PublicWireNullableString;
    /** Canonical public fetchedAt value. */
    fetchedAt: PublicWireNullableString;
    /** Canonical public tags value. */
    tags: PublicWireNullableStringArray;
};
/** Canonical public FeedItem wire record shared by the REST and Cap'n Web surfaces. */
type FeedItemRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public kind value. */
    kind: string;
    /** Canonical public source value. */
    source: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public itemPath value. */
    itemPath: PublicWireNullableString;
    /** Canonical public url value. */
    url: PublicWireNullableString;
    /** Canonical public activityAt value. */
    activityAt: string;
    /** Canonical public activityYear value. */
    activityYear: number;
    /** Canonical public contentTimestamp value. */
    contentTimestamp: string;
    /** Canonical public timestamp value. */
    timestamp: string;
    /** Canonical public summary value. */
    summary: PublicWireNullableString;
    /** Canonical public year value. */
    year: PublicWireNullableNumber;
    /** Canonical public slug value. */
    slug?: string;
    /** Canonical public writingSource value. */
    writingSource?: "substack" | "cloudflare" | "other";
    /** Canonical public videoId value. */
    videoId?: string;
    /** Canonical public embedUrl value. */
    embedUrl?: string;
    /** Canonical public movieType value. */
    movieType?: PublicWireMovieType;
    /** Canonical public category value. */
    category?: string;
    /** Canonical public playlistId value. */
    playlistId?: string;
    /** Canonical public mixId value. */
    mixId?: string;
    /** Canonical public mixSource value. */
    mixSource?: "youtube" | "soundcloud" | "unknown";
    /** Canonical public albumId value. */
    albumId?: string;
    /** Canonical public trackId value. */
    trackId?: string;
    /** Canonical public appleUrl value. */
    appleUrl?: string;
    /** Canonical public spotifyUrl value. */
    spotifyUrl?: string;
    /** Canonical public tweetId value. */
    tweetId?: string;
    /** Canonical public author value. */
    author?: string;
    /** Canonical public eventType value. */
    eventType?: string;
    /** Canonical public repo value. */
    repo?: string;
    /** Canonical public score value. */
    score?: number;
    /** Canonical public reasons value. */
    reasons?: PublicWirePodcastImagesItemPurposes;
    /** Canonical public notes value. */
    notes?: string;
    /** Canonical public domain value. */
    domain?: string;
    /** Canonical public siteName value. */
    siteName?: string;
    /** Canonical public description value. */
    description?: string;
    /** Canonical public image value. */
    image?: string;
    /** Canonical public alt value. */
    alt?: string;
    /** Canonical public caption value. */
    caption?: string;
    /** Canonical public bookAuthor value. */
    bookAuthor?: string;
    /** Canonical public displayYear value. */
    displayYear?: number;
    /** Canonical public stravaActivityId value. */
    stravaActivityId?: string;
    /** Canonical public embedToken value. */
    embedToken?: string;
    /** Canonical public routeSummaryPolyline value. */
    routeSummaryPolyline?: string;
    /** Canonical public sportType value. */
    sportType?: string;
    /** Canonical public distanceMeters value. */
    distanceMeters?: number;
    /** Canonical public movingTimeSeconds value. */
    movingTimeSeconds?: number;
    /** Canonical public totalElevationGainMeters value. */
    totalElevationGainMeters?: number;
    /** Canonical public sportingEvent value. */
    sportingEvent?: {
        sport: string;
        league: string;
        date: string;
        startTime: PublicWireNullableString;
        endTime: PublicWireNullableString;
        timeZone: PublicWireNullableString;
        status: PublicWireSportingEventStatus;
        experience: PublicWireSportingEventExperience;
        venue: {
            name: string;
            city?: string;
            region?: string;
            country?: string;
        } | null;
        competitors: PublicWireSportingEventCompetitors;
        referenceUrl: string;
    };
    /** Canonical public semantic value. */
    semantic?: {
        creators?: Array<PublicWireEventPerformersItem>;
        parent?: {
            kind: "album" | "podcast-show" | "series" | "tour";
            title: string;
            canonicalId?: `itm_${string}`;
            position?: string;
        };
        genres?: PublicWirePodcastImagesItemPurposes;
        topics?: PublicWirePodcastImagesItemPurposes;
        publication?: string;
        venue?: {
            name: string;
            city?: string;
            region?: string;
        };
        personal?: {
            rating?: number;
            experience?: PublicWireSportingEventExperienceKind;
            format?: "kindle" | "paperback" | "hardcover" | "print";
            sourceSignals?: Array<"authored" | "retweeted" | "liked" | "bookmarked">;
            readCount?: number;
            dateRead?: string;
        };
        counts?: {
            tracks?: number;
            songs?: number;
            sets?: number;
            encores?: number;
            pages?: number;
            performers?: number;
            achievements?: number;
        };
        activity?: {
            averageSpeedMetersPerSecond?: number;
            achievementCount?: number;
            trainer?: boolean;
            commute?: boolean;
            manual?: boolean;
        };
        sourceLabel?: string;
        camera?: string;
        endAt?: string;
    };
    /** Canonical public company value. */
    company?: string;
    /** Canonical public occurredAt value. */
    occurredAt?: string;
};
/** Canonical public SearchResultItem wire record shared by the REST and Cap'n Web surfaces. */
type SearchResultRecord = {
    /** Canonical public id value. */
    id: string;
    /** Canonical public canonicalId value. */
    canonicalId: `itm_${string}`;
    /** Canonical public source value. */
    source: string;
    /** Canonical public type value. */
    type: string;
    /** Canonical public title value. */
    title: string;
    /** Canonical public subtitle value. */
    subtitle: PublicWireNullableString;
    /** Canonical public itemPath value. */
    itemPath: string;
    /** Canonical public url value. */
    url: string;
    /** Canonical public score value. */
    score: number;
    /** Canonical public match value. */
    match?: {
        field: "canonical-id" | "canonical-path" | "source-url" | "title" | "subtitle" | "keywords" | "description";
        label: string;
        excerpt: string;
        terms: PublicWirePodcastImagesItemPurposes;
        kind: "exact" | "prefix" | "lexical" | "alias" | "fuzzy" | "semantic";
    };
};

declare const CAPNWEB_STABILITY: "stable";
declare const CAPNWEB_PACKAGE_VERSION: "0.12.0";
type CanonicalId = `itm_${string}`;
type PageCursor = string;
type SortDirection = 'asc' | 'desc';
type PublicRecord = ActivityRecord | MovieRecord | PlaceRecord | EventRecord | SportingEventRecord | MusicItemRecord | ConcertRecord | VideoRecord | PodcastRecord | TweetRecord | CodeActivityRecord | PhotoRecord | BookRecord | WorkTimelineRecord | ReadingRecord | BlogPostRecord | WritingRecord | FeedItemRecord | SearchResultRecord;
interface FacetValue {
    value: string;
    label: string;
    count: number;
}
interface YearNavigationAnchor {
    year: number;
    cursor: PageCursor;
}
type FacetCounts = Record<string, Record<string, number>>;
interface ActivityFacets {
    years: number[];
    sportTypes: FacetValue[];
    counts: FacetCounts;
}
interface MovieFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    types: FacetValue[];
    yearCounts: FacetValue[];
    genres: FacetValue[];
    directors: FacetValue[];
    actors: FacetValue[];
    counts: FacetCounts;
}
type PlaceFacets = Record<never, never>;
type EventFacets = Record<never, never>;
interface SportingEventFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    yearCounts: FacetValue[];
    sports: FacetValue[];
    leagues: FacetValue[];
    teams: FacetValue[];
    cities: FacetValue[];
    experienceKinds: FacetValue[];
    experienceStatuses: FacetValue[];
    counts: FacetCounts;
}
interface MusicItemFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    yearCounts: FacetValue[];
    types: FacetValue[];
    genres: FacetValue[];
    counts: FacetCounts;
}
interface ConcertFacets {
    years: number[];
    yearCounts: FacetValue[];
    artists: FacetValue[];
    venues: FacetValue[];
    cities: FacetValue[];
    counts: FacetCounts;
}
interface VideoFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    yearCounts: FacetValue[];
    categories: FacetValue[];
    counts: FacetCounts;
}
interface PodcastFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    yearCounts: FacetValue[];
    shows: FacetValue[];
    counts: FacetCounts;
}
interface TweetFacets {
    years: number[];
    authors: FacetValue[];
    counts: FacetCounts;
}
interface CodeActivityFacets {
    years: number[];
    kinds: FacetValue[];
    repos: FacetValue[];
    counts: FacetCounts;
}
interface PhotoFacets {
    years: number[];
    months: number[];
}
interface BookFacets {
    years: number[];
    yearAnchors: YearNavigationAnchor[];
    yearCounts: FacetValue[];
    authors: FacetValue[];
    counts: FacetCounts;
}
type WorkTimelineFacets = Record<never, never>;
interface ReadingItemFacets {
    years: number[];
    yearCounts: FacetValue[];
    domains: FacetValue[];
    counts: FacetCounts;
}
type BlogPostFacets = Record<never, never>;
interface WritingItemFacets {
    years: number[];
    yearCounts: FacetValue[];
    sources: FacetValue[];
    counts: FacetCounts;
}
interface SearchResultFacets {
    sources: FacetValue[];
    types: FacetValue[];
    counts: FacetCounts;
}
type FacetSnapshot<TFacets extends object> = {
    available: true;
    values: TFacets;
} | {
    available: false;
    values: null;
};
interface OrderBy<TField extends string> {
    field: TField;
    direction?: SortDirection;
}
interface PageInfo {
    totalCount: number;
    pageSize: number;
    startCursor: PageCursor | null;
    endCursor: PageCursor | null;
    hasNextPage: boolean;
    hasPreviousPage: boolean;
    generatedAt: Date;
}
interface Citation {
    canonicalId: CanonicalId;
    title: string;
    canonicalUrl: URL;
}
interface CollectionDescriptor {
    key: string;
    label: string;
    canonicalUrl: URL;
    filters: readonly string[];
    orderFields: readonly string[];
    defaultOrder: string;
    exportFormats: readonly ExportFormat[];
    maxExportRecords: number;
}
type ExportFormat = NonNullable<ExportOptions['format']>;
/** A session-local candidate source. Never persist this capability; reconstruct it on reconnect. */
interface CandidateSet extends RpcTarget {
    /** Return a bounded prefix, at most 100 IDs. A full prefix does not prove the selection is complete. */
    candidateIds(limit?: number): Promise<CanonicalId[]>;
}
interface AnyContentItem extends RpcTarget {
    readonly canonicalId: CanonicalId;
    readonly canonicalUrl: URL;
    snapshot(): Promise<PublicRecord>;
    related(input?: RelatedInput): RecommendationSet;
    citations(): Promise<Citation[]>;
}
interface ContentItem<TRecord extends PublicRecord> extends AnyContentItem {
    snapshot(): Promise<TRecord>;
}
interface ContentPage<TRecord extends PublicRecord = PublicRecord> extends CandidateSet {
    /** Page metadata shares the materialized query with records(). Queue both before awaiting an HTTP batch. */
    info(): Promise<PageInfo>;
    /** Allocate item capabilities from the session budget. Dispose the returned array; use records() for bulk data. */
    items(): Promise<Array<ContentItem<TRecord>>>;
    /** Read the page in one operation, without allocating a capability or issuing a snapshot query per item. */
    records(): Promise<TRecord[]>;
    /** WebSocket only. For HTTP, use info().endCursor with pageAfter() on a new batch session. */
    next(): Promise<ContentPage<TRecord> | null>;
}
interface AnyContentPage extends CandidateSet {
    /** Page metadata shares the materialized query with records(). Queue both before awaiting an HTTP batch. */
    info(): Promise<PageInfo>;
    /** Allocate item capabilities from the session budget. Dispose the returned array; use records() for bulk data. */
    items(): Promise<AnyContentItem[]>;
    /** Read the page in one operation, without allocating a capability or issuing a snapshot query per item. */
    records(): Promise<PublicRecord[]>;
    /** WebSocket only. For HTTP, use info().endCursor with pageAfter() on a new batch session. */
    next(): Promise<AnyContentPage | null>;
}
interface ContentSelection<TRecord extends PublicRecord = PublicRecord, TFilter extends object = object, TOrderField extends string = string, TFacets extends object = object> extends CandidateSet {
    matching(filter: TFilter): ContentSelection<TRecord, TFilter, TOrderField, TFacets>;
    orderedBy(order: readonly OrderBy<TOrderField>[]): ContentSelection<TRecord, TFilter, TOrderField, TFacets>;
    /** Default 20, maximum 100 records. Item-capability arrays also consume the live capability budget. */
    first(count?: number): ContentPage<TRecord>;
    /** Continue the same filters/order from info().endCursor. HTTP continuation needs a new root session. */
    pageAfter(cursor: PageCursor, count?: number): ContentPage<TRecord>;
    facets(): Promise<FacetSnapshot<TFacets>>;
    /** Finite export: omit limit for complete-or-error. HTTP bodies allow 128 KiB; use WebSocket for larger exports. Consume or cancel promptly. */
    export(options?: ExportOptions): Promise<ReadableStream<Uint8Array>>;
}
interface ContentCollection<TRecord extends PublicRecord = PublicRecord, TFilter extends object = object, TOrderField extends string = string, TFacets extends object = object> extends RpcTarget {
    descriptor(): Promise<CollectionDescriptor>;
    all(): ContentSelection<TRecord, TFilter, TOrderField, TFacets>;
    matching(filter: TFilter): ContentSelection<TRecord, TFilter, TOrderField, TFacets>;
    item(canonicalId: CanonicalId): ContentItem<TRecord>;
}
type ActivityCollection = ContentCollection<ActivityRecord, ActivityFilter, ActivityOrderField, ActivityFacets>;
type MovieCollection = ContentCollection<MovieRecord, MovieFilter, MovieOrderField, MovieFacets>;
type PlaceCollection = ContentCollection<PlaceRecord, PlaceFilter, PlaceOrderField, PlaceFacets>;
type EventCollection = ContentCollection<EventRecord, EventFilter, EventOrderField, EventFacets>;
type SportingEventCollection = ContentCollection<SportingEventRecord, SportingEventFilter, SportingEventOrderField, SportingEventFacets>;
type MusicCollection = ContentCollection<MusicItemRecord, MusicItemFilter, MusicItemOrderField, MusicItemFacets>;
type ConcertCollection = ContentCollection<ConcertRecord, ConcertFilter, ConcertOrderField, ConcertFacets>;
type VideoCollection = ContentCollection<VideoRecord, VideoFilter, VideoOrderField, VideoFacets>;
type PodcastCollection = ContentCollection<PodcastRecord, PodcastFilter, PodcastOrderField, PodcastFacets>;
type TweetCollection = ContentCollection<TweetRecord, TweetFilter, TweetOrderField, TweetFacets>;
type CodeCollection = ContentCollection<CodeActivityRecord, CodeActivityFilter, CodeActivityOrderField, CodeActivityFacets>;
type PhotoCollection = ContentCollection<PhotoRecord, PhotoFilter, PhotoOrderField, PhotoFacets>;
type BookCollection = ContentCollection<BookRecord, BookFilter, BookOrderField, BookFacets>;
type WorkCollection = ContentCollection<WorkTimelineRecord, WorkTimelineFilter, WorkTimelineOrderField, WorkTimelineFacets>;
type ReadingCollection = ContentCollection<ReadingRecord, ReadingItemFilter, ReadingItemOrderField, ReadingItemFacets>;
type BlogCollection = ContentCollection<BlogPostRecord, BlogPostFilter, BlogPostOrderField, BlogPostFacets>;
type WritingCollection = ContentCollection<WritingRecord, WritingItemFilter, WritingItemOrderField, WritingItemFacets>;
type PublicCollectionFilter = ActivityFilter | MovieFilter | PlaceFilter | EventFilter | SportingEventFilter | MusicItemFilter | ConcertFilter | VideoFilter | PodcastFilter | TweetFilter | CodeActivityFilter | PhotoFilter | BookFilter | WorkTimelineFilter | ReadingItemFilter | BlogPostFilter | WritingItemFilter;
type PublicCollectionOrderField = ActivityOrderField | MovieOrderField | PlaceOrderField | EventOrderField | SportingEventOrderField | MusicItemOrderField | ConcertOrderField | VideoOrderField | PodcastOrderField | TweetOrderField | CodeActivityOrderField | PhotoOrderField | BookOrderField | WorkTimelineOrderField | ReadingItemOrderField | BlogPostOrderField | WritingItemOrderField;
type PublicCollectionFacets = ActivityFacets | MovieFacets | PlaceFacets | EventFacets | SportingEventFacets | MusicItemFacets | ConcertFacets | VideoFacets | PodcastFacets | TweetFacets | CodeActivityFacets | PhotoFacets | BookFacets | WorkTimelineFacets | ReadingItemFacets | BlogPostFacets | WritingItemFacets;
interface AnyContentSelection extends CandidateSet {
    matching(filter: PublicCollectionFilter): AnyContentSelection;
    orderedBy(order: readonly OrderBy<PublicCollectionOrderField>[]): AnyContentSelection;
    first(count?: number): AnyContentPage;
    pageAfter(cursor: PageCursor, count?: number): AnyContentPage;
    facets(): Promise<FacetSnapshot<PublicCollectionFacets>>;
    /** Finite export: omit limit for complete-or-error. HTTP bodies allow 128 KiB; use WebSocket for larger exports. Consume or cancel promptly. */
    export(options?: ExportOptions): Promise<ReadableStream<Uint8Array>>;
}
interface AnyContentCollection extends RpcTarget {
    descriptor(): Promise<CollectionDescriptor>;
    all(): AnyContentSelection;
    matching(filter: PublicCollectionFilter): AnyContentSelection;
    item(canonicalId: CanonicalId): AnyContentItem;
}
interface ContentLibrary extends RpcTarget {
    readonly activities: ActivityCollection;
    readonly movies: MovieCollection;
    readonly places: PlaceCollection;
    readonly events: EventCollection;
    readonly sports: SportingEventCollection;
    readonly music: MusicCollection;
    readonly concerts: ConcertCollection;
    readonly videos: VideoCollection;
    readonly podcasts: PodcastCollection;
    readonly tweets: TweetCollection;
    readonly code: CodeCollection;
    readonly photos: PhotoCollection;
    readonly books: BookCollection;
    readonly work: WorkCollection;
    readonly reading: ReadingCollection;
    readonly blog: BlogCollection;
    readonly writing: WritingCollection;
    item(canonicalId: CanonicalId): AnyContentItem;
}
interface SearchResults extends CandidateSet {
    first(count?: number): ContentPage<SearchResultRecord>;
    facets(): Promise<FacetSnapshot<SearchResultFacets>>;
}
interface RecommendationRecord {
    canonicalId: CanonicalId;
    title: string;
    canonicalUrl: URL;
    score: number;
    reasons: string[];
}
interface RecommendationExplanation {
    canonicalId: CanonicalId;
    score: number;
    reasons: string[];
}
interface RecommendationInfo {
    returnedCount: number;
    /** IDs considered within the bounded scope, before final presentation. */
    candidateCount: number;
    candidateLimit: number;
    scope: 'selection-prefix' | 'retrieval-pool';
    /** Conservative: a full prefix may have further candidates; it is not an exact total. */
    mayHaveMoreCandidates: boolean;
}
interface RecommendationSet extends CandidateSet {
    info(): Promise<RecommendationInfo>;
    records(): Promise<RecommendationRecord[]>;
    items(): Promise<Array<AnyContentItem>>;
    explain(item: AnyContentItem): Promise<RecommendationExplanation | null>;
}
interface DiscoveryCapability extends RpcTarget {
    search(input: SearchInput): SearchResults;
    recommend(input: RecommendationInput, within?: CandidateSet): RecommendationSet;
}
interface MovieTasteSummary {
    schemaVersion: 1;
    outcome: 'ok' | 'empty_collection';
    narrative: string;
    corpus: {
        id: string;
        label: string;
        definition: string;
        inclusionRules: string[];
        exclusionMeaning: string;
        canonicalUrl: URL;
    };
    counts: {
        returnedCount: number;
        collectionCount: number;
    };
    coverage: {
        dataAsOf: Date | null;
        dimensions: Array<{
            dimension: 'type' | 'genre' | 'releaseDecade' | 'director';
            eligibleCount: number;
            populatedCount: number;
            missingCount: number;
        }>;
    };
    distributions: Array<{
        dimension: 'type' | 'genre' | 'releaseDecade' | 'director';
        label: string;
        multiValue: boolean;
        denominatorCount: number;
        values: Array<{
            value: string;
            label: string;
            count: number;
            shareOfEligible: number;
        }>;
    }>;
    examples: MovieRecord[];
    generatedAt: Date;
}
interface MovieTaste extends RpcTarget {
    summary(options?: MovieSummaryOptions): Promise<MovieTasteSummary>;
}
interface MusicIntersection extends CandidateSet {
    summary(): Promise<string>;
    matches(): Promise<MusicIntersectionResultV1['matches']>;
    tracks(): Promise<Array<ContentItem<MusicItemRecord>>>;
}
interface StationTrackExplanation {
    canonicalId: CanonicalId;
    reasonCodes: string[];
    programming: MusicStationResultV1['tracks'][number]['programming'] | null;
}
interface MusicStation extends CandidateSet {
    description(): Promise<Omit<MusicStationResultV1, 'tracks'>>;
    program(): Promise<MusicStationResultV1>;
    tracks(): Promise<Array<ContentItem<MusicItemRecord>>>;
    explain(track: ContentItem<MusicItemRecord>): Promise<StationTrackExplanation | null>;
}
interface MusicTaste extends RpcTarget {
    profile(): Promise<TasteProfileDocumentV1>;
    intersect(input: MusicIntersectionRequestV1): MusicIntersection;
    station(input: MusicStationRequestV1): MusicStation;
    search(input?: MusicSearchInput): ContentPage<MusicItemRecord>;
}
interface TasteCapability extends RpcTarget {
    readonly movies: MovieTaste;
    readonly music: MusicTaste;
    recommend(input: RecommendationInput, within?: CandidateSet): RecommendationSet;
}
interface FeedFilter {
    kind?: string;
    source?: string;
    year?: number;
    from?: string;
    to?: string;
    query?: string;
    limit?: number;
}
interface FeedCheckpoint {
    cursor: PageCursor;
}
interface FeedEvent {
    checkpoint: FeedCheckpoint;
    record: FeedItemRecord;
}
interface FeedSelection extends CandidateSet {
    first(count?: number): ContentPage<FeedItemRecord>;
    /** WebSocket only; a finite page, not a live subscription. Persist each processed checkpoint. Consume or cancel promptly. */
    stream(options?: FeedStreamOptions): Promise<ReadableStream<FeedEvent>>;
}
interface FeedCapability extends RpcTarget {
    latest(input?: FeedFilter): FeedSelection;
    /** Reconstruct a finite selection after the last processed checkpoint, including after reconnect. Offset checkpoints do not guarantee a durable event log. */
    resume(checkpoint: FeedCheckpoint): FeedSelection;
}
interface ServiceDescription {
    capnwebPackageVersion: typeof CAPNWEB_PACKAGE_VERSION;
    transports: readonly ['http-batch', 'websocket'];
    releaseId: string;
    name: string;
    documentation: URL;
    declaration: URL;
}
interface ServiceHealth {
    status: 'healthy' | 'degraded';
    checkedAt: Date;
    releaseId: string;
}
interface ServiceCapability extends RpcTarget {
    description(): Promise<ServiceDescription>;
    health(): Promise<ServiceHealth>;
}
/** Anonymous, read-only root at /api/rpc. HTTP sessions are single-use: queue every dependent call before awaiting. WebSockets allow 200 calls/1,000 work units, close after 60s idle or 10min, and require capability reconstruction on reconnect. HTTP allows 32 calls/200 work units. Both allow 32 live derived capabilities; dispose results and consume/cancel streams. */
interface BrendanPublicApi extends RpcTarget {
    readonly service: ServiceCapability;
    readonly content: ContentLibrary;
    readonly discovery: DiscoveryCapability;
    readonly taste: TasteCapability;
    readonly feed: FeedCapability;
}

export { CAPNWEB_PACKAGE_VERSION, CAPNWEB_STABILITY };
export type { ActivityCollection, ActivityFacets, ActivityFilter, ActivityOrderField, ActivityRecord, AnyContentCollection, AnyContentItem, AnyContentPage, AnyContentSelection, BlogCollection, BlogPostFacets, BlogPostFilter, BlogPostOrderField, BlogPostRecord, BookCollection, BookFacets, BookFilter, BookOrderField, BookRecord, BrendanPublicApi, CandidateSet, CanonicalId, Citation, CodeActivityFacets, CodeActivityFilter, CodeActivityOrderField, CodeActivityRecord, CodeCollection, CollectionDescriptor, ConcertCollection, ConcertFacets, ConcertFilter, ConcertOrderField, ConcertRecord, ContentCollection, ContentItem, ContentLibrary, ContentPage, ContentSelection, DiscoveryCapability, EventCollection, EventFacets, EventFilter, EventOrderField, EventRecord, ExportFormat, ExportOptions, FacetCounts, FacetSnapshot, FacetValue, FeedCapability, FeedCheckpoint, FeedEvent, FeedFilter, FeedItemRecord, FeedSelection, FeedStreamOptions, MovieCollection, MovieFacets, MovieFilter, MovieOrderField, MovieRecord, MovieSummaryOptions, MovieTaste, MovieTasteSummary, MusicCollection, MusicGenre, MusicIntersection, MusicItemFacets, MusicItemFilter, MusicItemOrderField, MusicItemRecord, MusicSearchInput, MusicStation, MusicTaste, OrderBy, PageCursor, PageInfo, PhotoCollection, PhotoFacets, PhotoFilter, PhotoOrderField, PhotoRecord, PlaceCollection, PlaceFacets, PlaceFilter, PlaceOrderField, PlaceRecord, PodcastCollection, PodcastFacets, PodcastFilter, PodcastOrderField, PodcastRecord, PublicCollectionFacets, PublicCollectionFilter, PublicCollectionOrderField, PublicRecord, ReadingCollection, ReadingItemFacets, ReadingItemFilter, ReadingItemOrderField, ReadingRecord, RecommendationExplanation, RecommendationInfo, RecommendationInput, RecommendationRecord, RecommendationSet, RelatedInput, SearchInput, SearchResultFacets, SearchResultRecord, SearchResults, ServiceCapability, ServiceDescription, ServiceHealth, SortDirection, SportingEventCollection, SportingEventFacets, SportingEventFilter, SportingEventOrderField, SportingEventRecord, StationTrackExplanation, TasteCapability, TweetCollection, TweetFacets, TweetFilter, TweetOrderField, TweetRecord, VideoCategory, VideoCollection, VideoFacets, VideoFilter, VideoOrderField, VideoRecord, WorkCollection, WorkTimelineFacets, WorkTimelineFilter, WorkTimelineOrderField, WorkTimelineRecord, WritingCollection, WritingItemFacets, WritingItemFilter, WritingItemOrderField, WritingRecord, YearNavigationAnchor };
