export interface LocationContext {
    /** WGS-84 latitude (caller is responsible for any GCJ-02→WGS-84 reversal). */
    lat: number;
    /** WGS-84 longitude. */
    lng: number;
    /** Optional accuracy in meters from the source platform. */
    accuracy?: number;
    /** Venue title (Telegram venue / Feishu location.name). */
    venueLabel?: string;
    /** Venue address line. */
    venueAddress?: string;
    /** Internal — used for TTL eviction. */
    createdAt: number;
}
export declare function setLocationContext(threadKey: string, ctx: Omit<LocationContext, 'createdAt'>): void;
/**
 * Pop the location for this thread if any. Single-shot — consuming a
 * location clears it, so a single share annotates at most one user turn.
 */
export declare function consumeLocationContext(threadKey: string): LocationContext | null;
export declare function _sizeForTest(): number;
export declare function _clearForTest(): void;
/**
 * Render a single-line annotation that we prepend to the user's next text
 * message before sending it to the agent. Format is a structured tag the
 * agent's system prompt knows about — see save_memo's tool description.
 *
 * Example:
 *   [user just shared location: lat=30.275796, lng=120.127970, name="黄龙国际中心", address="学院路77号", accuracy_m=5]
 */
export declare function formatLocationAnnotation(c: LocationContext): string;
//# sourceMappingURL=location-context.d.ts.map