import type { Request, Response } from "express";
import type { AgentIdentity, AttributionTier } from "../../crypto/agent_identity.js";
export declare const FEEDBACK_ADMIN_COOKIE = "neotoma_feedback_admin";
export declare const FEEDBACK_ADMIN_ALLOWED_TIERS: AttributionTier[];
export interface FeedbackAdminSession {
    token: string;
    tier: AttributionTier;
    thumbprint?: string;
    sub?: string;
    iss?: string;
    createdAt: number;
    expiresAt: number;
}
export interface FeedbackAdminSessionSnapshot {
    active: boolean;
    tier?: AttributionTier;
    thumbprint?: string;
    sub?: string;
    iss?: string;
    expires_at?: string;
}
export declare function createFeedbackAdminChallenge(): {
    challenge: string;
    expires_at: string;
};
export declare function redeemFeedbackAdminChallenge(challenge: string, identity: AgentIdentity | null): FeedbackAdminSession;
export declare function readFeedbackAdminCookie(req: Request): string | undefined;
export declare function getFeedbackAdminSessionFromRequest(req: Request): FeedbackAdminSession | null;
export declare function getRedeemedFeedbackAdminSession(challenge: string): FeedbackAdminSession | null;
export declare function setFeedbackAdminCookie(res: Response, session: FeedbackAdminSession): void;
export declare function clearFeedbackAdminCookie(res: Response): void;
export declare function revokeFeedbackAdminSessionFromRequest(req: Request): void;
export declare function describeFeedbackAdminSession(req: Request): FeedbackAdminSessionSnapshot;
export declare function describeFeedbackAdminSessionForChallenge(challenge: string | undefined): FeedbackAdminSessionSnapshot;
export declare function clearFeedbackAdminStateForTests(): void;
//# sourceMappingURL=admin_session.d.ts.map