import { LabOrderableItemListParams, LabOrderableItemListResponse, LabOrderableItemQuestionnaireGetParams, LabOrderableItemQuestionnaireGetResponse, LabOrderSubmitParams, LabRouteCreateParams, LabRouteDeleteParams, LabRouteListResponse, OystehrClientRequest } from '../..';
import { SDKResource } from '../../client/client';
import { OystehrConfig } from '../../config';
export declare class Lab extends SDKResource {
    #private;
    constructor(config: OystehrConfig);
    /**
     * Gets a list of Routes associated with the project. Returns an empty list if no Routes are found.
     *
     * Access Policy Requirements:
     * Action: `Lab:GetRoutes`
     * Access Policy Resource: `Lab:Route`
     */
    routeList(request?: OystehrClientRequest): Promise<LabRouteListResponse>;
    /**
     * Create a route. A Route represents that a lab and particular customer have a relationship, and a Route is necessary to submit an order to a lab. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) for more details.
     *
     * Access Policy Requirements:
     * Action: `Lab:CreateRoute`
     * Access Policy Resource: `Lab:Route`
     */
    routeCreate(params: LabRouteCreateParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Delete a route. Deleting a Route will permanently remove the `routeGuid`. Orders can no longer be submitted to this lab until a new Route is created. See [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#delete-route) for more details.
     *
     * Access Policy Requirements:
     * Action: `Lab:DeleteRoute`
     * Access Policy Resource: `Lab:Route`
     */
    routeDelete(params: LabRouteDeleteParams, request?: OystehrClientRequest): Promise<void>;
    /**
     * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
     *
     * Access Policy Requirements:
     * Action: `Lab:SearchOrderableItems`
     * Access Policy Resource: `Lab:OrderableItem`
     */
    orderableItemList(params: LabOrderableItemListParams, request?: OystehrClientRequest): Promise<LabOrderableItemListResponse>;
    /**
     * Returns list of active orderable items for the latest compendium version. Page size is default 25 and max 100 items. See [orderable item Search](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#orderable-item-search) for more details.
     *
     * Access Policy Requirements:
     * Action: `Lab:SearchOrderableItems`
     * Access Policy Resource: `Lab:OrderableItem`
     */
    orderableItemList(request?: OystehrClientRequest): Promise<LabOrderableItemListResponse>;
    /**
     * Retrieve the AOE (Answer on Entry) Questionnaire for the given orderable item. The orderable item is defined by its labGuid, compendiumVersion, and itemCode. See [AOE](https://docs.oystehr.com/oystehr/services/lab/explore-the-compendium/#AOE) for more details.
     *
     * Access Policy Requirements:
     * Action: `Lab:SearchOrderableItems`
     * Access Policy Resource: `Lab:OrderableItem`
     */
    orderableItemQuestionnaireGet(params: LabOrderableItemQuestionnaireGetParams, request?: OystehrClientRequest): Promise<LabOrderableItemQuestionnaireGetResponse>;
    /**
     * Submit a lab order. Oystehr's [Submit Lab](https://docs.oystehr.com/oystehr/services/lab/submit-an-order/) feature allows users to submit a well configured ServiceRequest to an external lab. In order to successfully submit an order, a [Route](https://docs.oystehr.com/oystehr/services/lab/onboarding-a-lab/#create-route) to and Organization representing that lab must exist.
     *
     * Access Policy Requirements:
     * Action: `Lab:SubmitOrder`
     * Access Policy Resource: `Lab:Order`
     */
    orderSubmit(params: LabOrderSubmitParams, request?: OystehrClientRequest): Promise<void>;
}
