import { BreadcrumbItem } from './dto/breadcrumb-item';
import { CollectionResponse } from './dto/collection-response';
import { GenericContentItem } from './dto/generic-content-item';
import { NavigationItem } from './dto/navigation-item';
import { SdkItem } from './dto/sdk-item';
import { Widget } from './dto/widget';
import { CreateArgs } from './args/create.args';
import { CreateWidgetArgs } from './args/create-widget.args';
import { DeleteArgs } from './args/delete.args';
import { GetAllArgs } from './args/get-all.args';
import { GetBreadcrumbArgs } from './args/get-breadcrumb.args';
import { GetPageLayoutArgs } from './args/get-page-layout.args';
import { GetNavigationArgs } from './args/get-navigation.args';
import { ItemArgs } from './args/item.args';
import { LockArgs } from './args/lock-page.args';
import { PublishArgs } from './args/publish.args';
import { RelateArgs } from './args/relate.args';
import { ScheduleArgs } from './args/schedule.args';
import { UpdateArgs } from './args/update.args';
import { UploadMediaArgs } from './args/upload.args';
import { LayoutResponse, LayoutServiceResponse } from './dto/layout-service.response';
import { GetFormLayoutArgs } from './args/get-form-layout.args';
import { UserDto } from './dto/user-item';
import { ExternalProvider } from './dto/external-provider';
import { RegistrationSettingsDto } from './dto/registration-settings';
import { FacetsViewModelDto } from './dto/facets/facets-viewmodel-dto';
import { GetFacetsArgs } from './args/get-facets.args';
import { FacetFlatResponseDto } from './dto/facets/facet-flat-dto';
import { SearchArgs } from './args/perform-search.args';
import { SuggestionsArgs } from './args/get-search-suggestions.args';
import { SearchResultDocumentDto } from './dto/search-results-document-dto';
import { GetTaxonArgs } from './args/get-taxon.args';
import { TaxonDto } from './dto/taxon-dto';
import { GetTemplatesArgs } from './args/get-templates-args';
import { PageTemplateCategoryDto } from './dto/page-template-category.dto';
import { PageTemplateStatisticsDto } from './dto/page-template-statistics.dto';
import { WidgetModel } from '../editor/widget-framework/widget-model';
import { GetHierarchicalWidgetModelArgs } from './args/get-hierarchical-widget-model.args';
import { CommonArgs } from './args/common.args';
import { GetLazyWidgetsArgs } from './args/get-lazy-widgets.args';
import { SiteDto } from './dto/site-item';
import { ChangeLocationPriorityArgs } from './args/change-location-priority.args';
import { RequestArgs } from './args/request.args';
import { GetFacatebleFieldsArgs } from './args/get-facateble-fields.args';
import { GetSharedContentArgs } from './args/get-shared-content.args';
import { GetTemplatesStatisticsArgs } from './args/get-templates-statistics-args';
import { SearchMetadataDto } from './dto/search-metadata-dto';
export declare class RestClient {
    static contextQueryParams: {
        [key: string]: string;
    };
    static getItemWithFallback<T extends SdkItem>(args: ItemArgs): Promise<T>;
    static getTaxons(args: GetTaxonArgs): Promise<TaxonDto[]>;
    static getSearchMetadata(): Promise<SearchMetadataDto>;
    static getItemWithStatus<T extends SdkItem>(args: ItemArgs): Promise<T>;
    static getItem<T extends SdkItem>(args: ItemArgs): Promise<T>;
    static getSharedContent(args: GetSharedContentArgs): Promise<GenericContentItem>;
    static getItems<T extends SdkItem>(args: GetAllArgs): Promise<CollectionResponse<T>>;
    static createItem<T extends SdkItem>(args: CreateArgs): Promise<T>;
    static scheduleItem(args: ScheduleArgs): Promise<void>;
    static updateItem(args: UpdateArgs): Promise<void>;
    static deleteItem<T extends SdkItem>(args: DeleteArgs): Promise<T>;
    static publishItem(args: PublishArgs): Promise<void>;
    static saveDraftItem(args: PublishArgs): Promise<void>;
    static syncPage(args: UpdateArgs): Promise<void>;
    static lockItem(args: UpdateArgs): Promise<void>;
    static relateItem(args: RelateArgs): Promise<void>;
    static lockPage(args: LockArgs): Promise<void>;
    static createWidget(args: CreateWidgetArgs): Promise<Widget>;
    static updateWidget(page: SdkItem, propertyValues: any): Promise<unknown>;
    static uploadItem(args: UploadMediaArgs): Promise<SdkItem>;
    static performSearch(args: SearchArgs): Promise<{
        totalCount: number;
        searchResults: SearchResultDocumentDto[];
    }>;
    static getSearchSuggestions(args: SuggestionsArgs): Promise<{
        value: string[];
    }>;
    static getFacatebleFields(args: GetFacatebleFieldsArgs): Promise<FacetsViewModelDto[]>;
    static getFacets(args: GetFacetsArgs): Promise<FacetFlatResponseDto[]>;
    static getResetPasswordModel(token: string, traceContext?: any): Promise<RegistrationSettingsDto>;
    static getRegistrationSettings(args: RequestArgs): Promise<RegistrationSettingsDto>;
    static activateAccount(encryptedParam: string, traceContext?: any): Promise<void>;
    static getExternalProviders(args: RequestArgs): Promise<ExternalProvider[]>;
    static getCurrentUser(args?: RequestArgs): Promise<UserDto>;
    static getCurrentSite(args?: RequestArgs): Promise<SiteDto>;
    static getNavigation(args: GetNavigationArgs): Promise<NavigationItem[]>;
    static getBreadcrumb(args: GetBreadcrumbArgs): Promise<BreadcrumbItem[]>;
    static setHomePage(args: ItemArgs): Promise<void>;
    static getPreviewLink(args: ItemArgs): Promise<any>;
    static getPageSharePreviewLink(pageId: string): Promise<any>;
    static getContentLocations(args: CommonArgs): Promise<any>;
    static getDisplayPages(args: ItemArgs): Promise<any>;
    static getProviders(args: CommonArgs): Promise<any>;
    static changeLocationPriority(args: ChangeLocationPriorityArgs): Promise<any>;
    static getFormLayout(args: GetFormLayoutArgs): Promise<LayoutServiceResponse>;
    static getWidgetModel(args: GetHierarchicalWidgetModelArgs): Promise<WidgetModel<any>>;
    static getLazyWidget(args: GetHierarchicalWidgetModelArgs): Promise<WidgetModel<any> | undefined>;
    static getLazyWidgets(args: GetLazyWidgetsArgs): Promise<Array<WidgetModel<any>>>;
    static getPageLayout(args: GetPageLayoutArgs): Promise<LayoutResponse>;
    static getTemplates(args: GetTemplatesArgs): Promise<PageTemplateCategoryDto[]>;
    static getTemplatesStatistics(args: GetTemplatesStatisticsArgs): Promise<PageTemplateStatisticsDto[]>;
    private static getSimpleFields;
    private static getRelatedFields;
    private static parseInnerFields;
    static buildQueryParams(queryParams: {
        [key: string]: string | undefined;
    } | undefined): string;
    static addAuthHeaders(cookie: string | undefined, headers: {
        [key: string]: string;
    }): void;
    private static getQueryParams;
    private static buildHeaders;
    static sendRequest<T>(request: RequestData, throwErrorAsJson?: boolean): Promise<T>;
    static buildItemBaseUrl(itemType: string): string;
    private static handleApiResponse;
}
export declare class RestSdkTypes {
    static readonly Video: string;
    static readonly Image: string;
    static readonly Document: string;
    static readonly DocumentLibrary: string;
    static readonly News: string;
    static readonly Taxonomies: string;
    static readonly Tags: string;
    static readonly Categories: string;
    static readonly GenericContent: string;
    static readonly Pages: string;
    static readonly PageTemplates: string;
    static readonly Form: string;
    static readonly Site: string;
    static readonly Blog: string;
    static readonly Event: string;
    static readonly Calendar: string;
    static readonly BlogPost: string;
    static readonly Author: string;
}
interface RequestData {
    url: string;
    method?: string;
    headers?: {
        [key: string]: string;
    };
    data?: any;
    additionalFetchData?: any;
    traceContext?: any;
}
export {};
