export declare const COMPLIMENT_DAILY_LIMIT = 5;
export declare const COMPLIMENT_KINDS: readonly ["GREAT_PROFILE", "INTERESTING_CAREER", "LOVE_YOUR_PROJECT", "CONNECT_PROFESSIONALLY", "GREAT_INTERESTS", "CUSTOM"];
export type ComplimentKindName = (typeof COMPLIMENT_KINDS)[number];
export declare function orderedPair(left: string, right: string): {
    low: string;
    high: string;
};
export declare function bothLiked(leftLiked: boolean, rightLiked: boolean): boolean;
export declare function ageBand(age: number): string | null;
export type ComplimentDecision = {
    ok: true;
    body: string | null;
} | {
    ok: false;
    code: 'RATE_LIMITED' | 'VALIDATION_ERROR';
    message: string;
};
export declare function decideCompliment(input: {
    kind: string;
    body?: string | null;
    sentLastDay: number;
    sentToTargetLastDay: number;
}): ComplimentDecision;
export type MemberSource = {
    id: string;
    isDemo: boolean;
    badgeVerified: boolean;
    displayName: string;
    bio: string | null;
    occupation: string | null;
    skills: string[];
    city: string | null;
    region: string | null;
    age: number | null;
    showCity: boolean;
    showProfession: boolean;
    showSkills: boolean;
    showAgeBand: boolean;
    hasPhoto: boolean;
    action: 'LIKE' | 'PASS' | null;
    connection: 'PENDING_SENT' | 'PENDING_RECEIVED' | 'ACCEPTED' | 'DECLINED' | null;
};
export declare function memberCard(source: MemberSource): {
    id: string;
    displayName: string;
    bio: string | null;
    occupation: string | null;
    skills: string[];
    city: string | null;
    region: string | null;
    ageBand: string | null;
    isDemo: boolean;
    badgeVerified: boolean;
    hasPhoto: boolean;
    action: "LIKE" | "PASS" | null;
    connection: "ACCEPTED" | "DECLINED" | "PENDING_SENT" | "PENDING_RECEIVED" | null;
};
