import type { AccessTokenManager } from '#services/access-token-manager/access-token-manager.service';
import type { RequestHandler } from '#services/request-handler/request-handler.types';
import type { Logger } from '#services/logger/logger.types';
import type { LaunchContext } from '#services/launch/launch-context.service';
import type { GetLineItemsOptions, GetLineItemsResult, GetScoresOptions, GetScoresResult, LineItem, Score } from '#services/grading/grading.types';
export declare class Grading {
    private readonly LOG_COMPONENT;
    private readonly LINEITEM_CONTAINER_ACCEPT;
    private readonly LINEITEM_MEDIA_TYPE;
    private readonly RESULT_CONTAINER_ACCEPT;
    private readonly SCORE_CONTENT_TYPE;
    private readonly RESOURCE_LINK_ID_PARAM;
    private readonly RESOURCE_ID_PARAM;
    private readonly TAG_PARAM;
    private readonly LIMIT_PARAM;
    private readonly USER_ID_PARAM;
    private readonly launchContext;
    private readonly accessTokenManager;
    private readonly requestHandler;
    private readonly logger;
    constructor(launchContext: LaunchContext, accessTokenManager: AccessTokenManager, requestHandler: RequestHandler, logger: Logger);
    /** Whether this launch declared AGS support. Check before calling any other method on this service. */
    isAvailable(): boolean;
    getLineItems(options?: GetLineItemsOptions): Promise<GetLineItemsResult>;
    createLineItem(lineItem: LineItem, options?: GetLineItemsOptions): Promise<LineItem>;
    getLineItemById(lineItemId: string): Promise<LineItem>;
    private fetchLineItemById;
    updateLineItemById(lineItemId: string, lineItem: LineItem): Promise<LineItem>;
    deleteLineItemById(lineItemId: string): Promise<boolean>;
    submitScore(lineItemId: string, score: Score): Promise<Score>;
    getScores(lineItemId: string, options?: GetScoresOptions): Promise<GetScoresResult>;
    private fetchLineItemsPage;
    private buildLineItemsQuery;
    private buildScoresQuery;
    private filterLineItems;
    private filtersByIdOrLabel;
    private buildPaginationLinks;
    private ensureServiceAvailability;
    private ensureLineItemsAvailable;
    private resolveLineItemsEndpoint;
    private appendPathSegment;
    private resolveResourceLinkId;
}
export default Grading;
