export declare const AudienceArmState: import("arktype/internal/variants/string.ts").StringType<"followers" | "private" | "public", {}>; export type AudienceArmState = typeof AudienceArmState.infer; export type LegacyAudienceArmState = "allow" | "deny"; export declare const AudienceArmWriteState: import("arktype/internal/variants/string.ts").StringType<"allow" | "deny" | "followers" | "private" | "public", {}>; export type AudienceArmWriteState = typeof AudienceArmWriteState.infer; export declare const AudiencePolicy: import("arktype/internal/variants/string.ts").StringType<"always-allow" | "ask" | "followers" | "never-allow" | "private" | "public", {}>; export type AudiencePolicy = typeof AudiencePolicy.infer; export type LegacyAudiencePolicy = "ask" | "always-allow" | "never-allow"; export declare const LegacyWireArmState: import("arktype/internal/variants/string.ts").StringType<"allow" | "deny", {}>; export type LegacyWireArmState = typeof LegacyWireArmState.infer; export declare const LegacyWireArmPolicy: import("arktype/internal/variants/string.ts").StringType<"always-allow" | "ask" | "never-allow", {}>; export type LegacyWireArmPolicy = typeof LegacyWireArmPolicy.infer; export declare const AudiencePolicyWrite: import("arktype/internal/variants/string.ts").StringType<"always-allow" | "ask" | "followers" | "never-allow" | "private" | "public", {}>; export type AudiencePolicyWrite = AudiencePolicy; export declare const ReqAudienceArmState: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.req-audience-arm-state"; auth: { type: "clerk" | "device-id" | "ucan"; token: string; }; ownerHandle: string; appSlug: string; }, {}>; export type ReqAudienceArmState = typeof ReqAudienceArmState.infer; export declare function isReqAudienceArmState(obj: unknown): obj is ReqAudienceArmState; export declare const ResAudienceArmState: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.res-audience-arm-state"; ownerHandle: string; appSlug: string; state: "allow" | "deny" | null; policy: "always-allow" | "ask" | "never-allow"; visibility: "followers" | "private" | "public" | null; intent: "followers" | "private" | "public" | null; sensitive: boolean; }, {}>; export type ResAudienceArmState = typeof ResAudienceArmState.infer; export declare function isResAudienceArmState(obj: unknown): obj is ResAudienceArmState; export declare const ReqSetAudienceArm: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.req-set-audience-arm"; auth: { type: "clerk" | "device-id" | "ucan"; token: string; }; ownerHandle: string; appSlug: string; state: "allow" | "deny" | "followers" | "private" | "public" | null; }, {}>; export type ReqSetAudienceArm = typeof ReqSetAudienceArm.infer; export declare function isReqSetAudienceArm(obj: unknown): obj is ReqSetAudienceArm; export declare const ResSetAudienceArm: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.res-set-audience-arm"; ownerHandle: string; appSlug: string; state: "allow" | "deny" | null; visibility: "followers" | "private" | "public" | null; }, {}>; export type ResSetAudienceArm = typeof ResSetAudienceArm.infer; export declare function isResSetAudienceArm(obj: unknown): obj is ResSetAudienceArm; export declare const ReqSetAudiencePolicy: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.req-set-audience-policy"; auth: { type: "clerk" | "device-id" | "ucan"; token: string; }; policy: "always-allow" | "ask" | "followers" | "never-allow" | "private" | "public"; }, {}>; export type ReqSetAudiencePolicy = typeof ReqSetAudiencePolicy.infer; export declare function isReqSetAudiencePolicy(obj: unknown): obj is ReqSetAudiencePolicy; export declare const ResSetAudiencePolicy: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.res-set-audience-policy"; policy: "always-allow" | "ask" | "never-allow"; intent: "followers" | "private" | "public" | null; }, {}>; export type ResSetAudiencePolicy = typeof ResSetAudiencePolicy.infer; export declare function isResSetAudiencePolicy(obj: unknown): obj is ResSetAudiencePolicy; export declare const AudienceArmEntry: import("arktype/internal/variants/object.ts").ObjectType<{ ownerHandle: string; appSlug: string; state: "allow" | "deny"; visibility: "followers" | "private" | "public"; }, {}>; export type AudienceArmEntry = typeof AudienceArmEntry.infer; export declare const ReqListAudienceArms: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.req-list-audience-arms"; auth: { type: "clerk" | "device-id" | "ucan"; token: string; }; }, {}>; export type ReqListAudienceArms = typeof ReqListAudienceArms.infer; export declare function isReqListAudienceArms(obj: unknown): obj is ReqListAudienceArms; export declare const ResListAudienceArms: import("arktype/internal/variants/object.ts").ObjectType<{ type: "vibes.diy.res-list-audience-arms"; policy: "always-allow" | "ask" | "never-allow"; intent: "followers" | "private" | "public" | null; arms: { ownerHandle: string; appSlug: string; state: "allow" | "deny"; visibility: "followers" | "private" | "public"; }[]; }, {}>; export type ResListAudienceArms = typeof ResListAudienceArms.infer; export declare function isResListAudienceArms(obj: unknown): obj is ResListAudienceArms; export declare function normalizeArmState(state: AudienceArmWriteState): AudienceArmState; export declare function normalizeHandleIntent(policy: AudiencePolicy | null): AudienceArmState | undefined; export declare function handleIntentForWire(policy: AudiencePolicy | null): AudienceArmState | null; export declare function armStateToLegacyWire(state: AudienceArmState | null): LegacyWireArmState | null; export declare function handleIntentToLegacyWire(policy: AudiencePolicy | null): LegacyWireArmPolicy; export declare function audienceVisibilityArgs(res: { readonly visibility: AudienceArmState | null; readonly intent: AudienceArmState | null; readonly sensitive: boolean; }): EffectiveAudienceVisibilityArgs; export type PromptOutcome = "prompt" | "auto-allow" | "silent-deny"; export interface ResolvePromptOutcomeArgs { readonly policy: AudiencePolicy | null; readonly sensitive: boolean; readonly prior: AudienceArmState | LegacyAudienceArmState | null; } export declare function resolvePromptOutcome({ policy, sensitive, prior }: ResolvePromptOutcomeArgs): PromptOutcome; export interface EffectiveAudienceVisibilityArgs { readonly state: AudienceArmState | LegacyAudienceArmState | null; readonly sensitive: boolean; readonly policy: AudiencePolicy | null; } export type EffectiveFollowersEnabledArgs = EffectiveAudienceVisibilityArgs; export declare function effectiveAudienceVisibility({ state, sensitive, policy }: EffectiveAudienceVisibilityArgs): AudienceArmState; export declare function effectiveFollowersEnabled(args: EffectiveAudienceVisibilityArgs): boolean; export declare const AUDIENCE_VISIBILITY_RANK: Record; export declare function isDownwardAudienceTransition(before: AudienceArmState, after: AudienceArmState): boolean;