import { SpriteHeadersInit } from '../rest/SpriteHeaders.js';
import { ISpriteAuthParameters } from '../rest/Auth.js';
import { Routes as DatabaseRoutes } from '../database/routes.js';
import { Routes as ServerRoutes } from '../server/routes.js';
import { ISpriteDatabaseExistingSession, ISpriteDatabaseNewSession } from './DatabaseSession.js';
export interface ISpriteBaseSession extends ISpriteAuthParameters {
    address: string;
}
export declare function isNewSession(parameters: ISpriteDatabaseNewSession | ISpriteDatabaseExistingSession | ISpriteBaseSession): boolean;
/**
 * Base class for handling common session functionality.
 */
declare class Session {
    address: string;
    headers: SpriteHeadersInit;
    endpoints: Record<string, string>;
    constructor(params: ISpriteBaseSession | ISpriteDatabaseExistingSession | ISpriteDatabaseNewSession);
    /**
     * Builds the endpoints for the session.
     * @param routes - The routes to build endpoints for.
     * @param prefix - The prefix for the endpoints.
     * @param suffix - The optional suffix for the endpoints.
     * @returns A record of the session's endpoints.
     */
    protected buildEndPoints(routes: typeof DatabaseRoutes | typeof ServerRoutes, suffix?: string): Record<string, string>;
}
export { Session };
