import type { UserAuthManager } from './user-auth.js';
export declare const OPERATOR_SESSION_COOKIE_NAME = "goodvibes_session";
export type AuthenticatedOperatorRequest = {
    readonly kind: 'shared-token';
    readonly token: string;
} | {
    readonly kind: 'session';
    readonly token: string;
    readonly username: string;
    readonly roles: readonly string[];
};
interface SessionCookieOptions {
    readonly req: Request;
    readonly expiresAt: number;
    readonly trustProxy?: boolean;
}
export declare function extractOperatorAuthToken(req: Request): string;
export declare function authenticateOperatorToken(token: string, context: {
    readonly sharedToken?: string | null;
    readonly userAuth: Pick<UserAuthManager, 'validateSession' | 'getUser'>;
}): AuthenticatedOperatorRequest | null;
export declare function authenticateOperatorRequest(req: Request, context: {
    readonly sharedToken?: string | null;
    readonly userAuth: Pick<UserAuthManager, 'validateSession' | 'getUser'>;
}): AuthenticatedOperatorRequest | null;
export declare function isOperatorAdmin(authenticated: AuthenticatedOperatorRequest | null): boolean;
export declare function buildOperatorSessionCookie(token: string, options: SessionCookieOptions): string;
export declare function buildExpiredOperatorSessionCookie(req: Request, trustProxy?: boolean): string;
export {};
//# sourceMappingURL=http-auth.d.ts.map