/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { GridAgentSessionContext } from './GridAgentSessionContext';
/**
 * Information about a specific session (conversation) with an agent.  Only the acess level can be changed on an existing session.  You will need to start a new session if you wish to use a different agentId.
 * @export
 * @interface AgentSession
 */
export interface AgentSession {
    /**
     * The unique identifier for a conversation with an agent.  The sessionId issued by Synapse when the session is started.  The caller must provided this sessionId with each chat request to identify a specific conversation with an agent.  A sessionId can only be used by the user that created it.
     * @type {string}
     * @memberof AgentSession
     */
    sessionId?: string;
    /**
     * Defines the level of data access that the agent will be given during a session.
     * @type {string}
     * @memberof AgentSession
     */
    agentAccessLevel?: AgentSessionAgentAccessLevelEnum;
    /**
     * The date this session was started.
     * @type {string}
     * @memberof AgentSession
     */
    startedOn?: string;
    /**
     * The id of the user that started this session
     * @type {number}
     * @memberof AgentSession
     */
    startedBy?: number;
    /**
     * The date this session was last modified.
     * @type {string}
     * @memberof AgentSession
     */
    modifiedOn?: string;
    /**
     * Identifies that agent that will be used for this session.  The default value is null, which indicates that the default agent will be used.
     * @type {string}
     * @memberof AgentSession
     */
    agentRegistrationId?: string;
    /**
     * Will change whenever the session changes.
     * @type {string}
     * @memberof AgentSession
     */
    etag?: string;
    /**
     *
     * @type {GridAgentSessionContext}
     * @memberof AgentSession
     */
    sessionContext?: GridAgentSessionContext;
}
/**
 * @export
 */
export declare const AgentSessionAgentAccessLevelEnum: {
    readonly PUBLICLY_ACCESSIBLE: "PUBLICLY_ACCESSIBLE";
    readonly READ_YOUR_PRIVATE_DATA: "READ_YOUR_PRIVATE_DATA";
    readonly WRITE_YOUR_PRIVATE_DATA: "WRITE_YOUR_PRIVATE_DATA";
};
export type AgentSessionAgentAccessLevelEnum = typeof AgentSessionAgentAccessLevelEnum[keyof typeof AgentSessionAgentAccessLevelEnum];
/**
 * Check if a given object implements the AgentSession interface.
 */
export declare function instanceOfAgentSession(value: object): value is AgentSession;
export declare function AgentSessionFromJSON(json: any): AgentSession;
export declare function AgentSessionFromJSONTyped(json: any, ignoreDiscriminator: boolean): AgentSession;
export declare function AgentSessionToJSON(json: any): AgentSession;
export declare function AgentSessionToJSONTyped(value?: AgentSession | null, ignoreDiscriminator?: boolean): any;
