import { z } from 'zod'; export declare const ThreadSubscription: z.ZodObject<{ channelId: z.ZodString; expiresAt: z.ZodOptional; lastActivityAt: z.ZodOptional; lastNudgeAt: z.ZodOptional; lastPostedAt: z.ZodOptional; mutedAt: z.ZodOptional; platform: z.ZodOptional>; silentWakeStartedAt: z.ZodOptional; updatedAt: z.ZodString; wakeCount: z.ZodOptional; wakeWindowStartedAt: z.ZodOptional; wakesSinceLastPost: z.ZodOptional; kind: z.ZodLiteral<"thread">; remainingMessages: z.ZodOptional; threadTs: z.ZodString; }, z.core.$strip>; export type ThreadSubscription = z.infer; export declare const ChannelSubscription: z.ZodObject<{ channelId: z.ZodString; expiresAt: z.ZodOptional; lastActivityAt: z.ZodOptional; lastNudgeAt: z.ZodOptional; lastPostedAt: z.ZodOptional; mutedAt: z.ZodOptional; platform: z.ZodOptional>; silentWakeStartedAt: z.ZodOptional; updatedAt: z.ZodString; wakeCount: z.ZodOptional; wakeWindowStartedAt: z.ZodOptional; wakesSinceLastPost: z.ZodOptional; kind: z.ZodLiteral<"channel">; }, z.core.$strip>; export type ChannelSubscription = z.infer; export declare const Subscription: z.ZodDiscriminatedUnion<[z.ZodObject<{ channelId: z.ZodString; expiresAt: z.ZodOptional; lastActivityAt: z.ZodOptional; lastNudgeAt: z.ZodOptional; lastPostedAt: z.ZodOptional; mutedAt: z.ZodOptional; platform: z.ZodOptional>; silentWakeStartedAt: z.ZodOptional; updatedAt: z.ZodString; wakeCount: z.ZodOptional; wakeWindowStartedAt: z.ZodOptional; wakesSinceLastPost: z.ZodOptional; kind: z.ZodLiteral<"thread">; remainingMessages: z.ZodOptional; threadTs: z.ZodString; }, z.core.$strip>, z.ZodObject<{ channelId: z.ZodString; expiresAt: z.ZodOptional; lastActivityAt: z.ZodOptional; lastNudgeAt: z.ZodOptional; lastPostedAt: z.ZodOptional; mutedAt: z.ZodOptional; platform: z.ZodOptional>; silentWakeStartedAt: z.ZodOptional; updatedAt: z.ZodString; wakeCount: z.ZodOptional; wakeWindowStartedAt: z.ZodOptional; wakesSinceLastPost: z.ZodOptional; kind: z.ZodLiteral<"channel">; }, z.core.$strip>], "kind">; export type Subscription = z.infer; export type StoredSubscriptions = Record; export type SubscriptionStatus = 'following' | 'muted'; export type SubscriptionRecord = Subscription & { agentId: string; subscriptionId: string; }; export declare class SubscriptionStore { private readonly agentId; private readonly file; constructor(agentId: string); list(): Promise; find(subscriptionId: string): Promise; replace(subscription: SubscriptionRecord): Promise; remove(subscriptionId: string): Promise; } export declare function subscriptionStatus(subscription: Subscription, _nowMs?: number): SubscriptionStatus; //# sourceMappingURL=subscription.store.d.ts.map