import { z } from 'zod'; /** Minimal AP actor shape for validation */ declare const apActorSchema: z.ZodObject<{ '@context': z.ZodUnion]>; type: z.ZodString; id: z.ZodString; preferredUsername: z.ZodOptional; name: z.ZodOptional; summary: z.ZodOptional; inbox: z.ZodString; outbox: z.ZodOptional; followers: z.ZodOptional; following: z.ZodOptional; url: z.ZodOptional; icon: z.ZodOptional; }, z.core.$strip>, z.ZodPipe; }, z.core.$strip>>, z.ZodTransform<{ type: string; url: string; mediaType?: string | undefined; } | undefined, { type: string; url: string; mediaType?: string | undefined; }[]>>]>>; image: z.ZodOptional; }, z.core.$strip>, z.ZodPipe; }, z.core.$strip>>, z.ZodTransform<{ type: string; url: string; mediaType?: string | undefined; } | undefined, { type: string; url: string; mediaType?: string | undefined; }[]>>]>>; publicKey: z.ZodOptional>; endpoints: z.ZodOptional; }, z.core.$strip>>; }, z.core.$strip>; export type ResolvedActor = z.infer; export type FetchFn = (url: string, init?: RequestInit) => Promise; /** Validate raw JSON as an AP actor */ export declare function validateActorResponse(json: unknown): ResolvedActor | null; /** Extract inbox URL from an actor object */ export declare function extractInbox(actor: ResolvedActor): string; /** Extract shared inbox URL if available, falling back to personal inbox */ export declare function extractSharedInbox(actor: ResolvedActor): string; /** Fetch and parse an AP actor by URI */ export declare function resolveActor(actorUri: string, fetchFn: FetchFn): Promise; /** Resolve an actor via WebFinger discovery: username@domain → actor URI → actor JSON */ export declare function resolveActorViaWebFinger(username: string, domain: string, fetchFn: FetchFn): Promise; export {}; //# sourceMappingURL=actorResolver.d.ts.map