import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ValtechAuthConfig } from '../auth/types';
import { AppRequest, RequestComment, RequestTypeConfig, RequestStatus, CreateRequestPayload, UpdateRequestPayload, TransitionPayload, AddCommentPayload, ListRequestsParams, ListRequestsResponse, ListCommentsResponse, ListRequestTypesResponse, CreateRequestTypePayload, UpdateRequestTypePayload } from './types';
import * as i0 from "@angular/core";
export declare class RequestService {
    private config;
    private http;
    constructor(config: ValtechAuthConfig, http: HttpClient);
    private get baseUrl();
    private get typesUrl();
    createRequest(payload: CreateRequestPayload): Observable<{
        requestId: string;
        request: AppRequest;
    }>;
    createAnonymousRequest(payload: CreateRequestPayload): Observable<{
        requestId: string;
        request: AppRequest;
    }>;
    listRequests(params?: ListRequestsParams): Observable<ListRequestsResponse>;
    listMyRequests(params?: ListRequestsParams): Observable<ListRequestsResponse>;
    getRequest(id: string): Observable<AppRequest>;
    updateRequest(id: string, payload: UpdateRequestPayload): Observable<AppRequest>;
    transition(id: string, payload: TransitionPayload): Observable<{
        status: RequestStatus;
    }>;
    addComment(requestId: string, payload: AddCommentPayload): Observable<RequestComment>;
    listComments(requestId: string): Observable<ListCommentsResponse>;
    listRequestTypes(): Observable<ListRequestTypesResponse>;
    getRequestType(typeId: string): Observable<RequestTypeConfig>;
    createRequestType(payload: CreateRequestTypePayload): Observable<RequestTypeConfig>;
    updateRequestType(typeId: string, payload: UpdateRequestTypePayload): Observable<RequestTypeConfig>;
    deleteRequestType(typeId: string): Observable<void>;
    private buildQueryString;
    static ɵfac: i0.ɵɵFactoryDeclaration<RequestService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RequestService>;
}
