/*
 * Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3 as published by
 * the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import { DashboardPublishingPackage, LegacyDashboardItem, LegacyDeploymentHistoryResponse } from '../models/Dashboard';
import { Observable } from 'rxjs';
import { DetailedItem, PagedArray, PublishingStats, PublishingTargets, SandboxItem } from '../models';
import { Activity } from '../models/Activity';
import PaginationOptions from '../models/PaginationOptions';
export declare function fetchLegacyGetGoLiveItems(
  site: string,
  sortBy?: string,
  sortAsc?: boolean,
  includeInProgress?: boolean,
  filterByNumber?: number
): Observable<LegacyDashboardItem>;
export declare function fetchLegacyUserActivities(
  site: string,
  user: string,
  sortBy: string,
  sortAsc: boolean,
  numResults: number,
  filterBy: string,
  excludeLive: boolean
): Observable<LegacyDashboardItem>;
export declare function fetchLegacyScheduledItems(
  site: string,
  sort: string,
  ascending: boolean,
  filterType: string
): Observable<LegacyDashboardItem>;
export declare function fetchLegacyDeploymentHistory(
  siteId: string,
  days: number,
  numResults: number,
  filterBy: string
): Observable<LegacyDeploymentHistoryResponse>;
interface FetchActivityOptions extends PaginationOptions {
  actions?: string[];
  usernames?: string[];
  dateFrom?: string;
  dateTo?: string;
}
export declare function fetchActivity(siteId: string, options?: FetchActivityOptions): Observable<PagedArray<Activity>>;
interface FetchMyActivityOptions extends Omit<FetchActivityOptions, 'usernames'> {}
export declare function fetchMyActivity(
  siteId: string,
  options?: FetchMyActivityOptions
): Observable<PagedArray<Activity>>;
export declare function fetchPendingApproval(
  siteId: string,
  options?: PaginationOptions
): Observable<PagedArray<DetailedItem>>;
export declare function fetchPendingApprovalPackageItems(siteId: string, packageId: number): Observable<SandboxItem[]>;
export declare function fetchUnpublished(
  siteId: string,
  options: PaginationOptions
): Observable<PagedArray<SandboxItem>>;
export interface FetchScheduledOptions extends PaginationOptions {
  publishingTarget?: PublishingTargets;
  approver?: string;
  dateFrom: string;
  dateTo: string;
}
export declare function fetchScheduled(
  siteId: string,
  options: FetchScheduledOptions
): Observable<PagedArray<DashboardPublishingPackage>>;
export declare function fetchScheduledPackageItems(siteId: string, packageId: number): Observable<SandboxItem[]>;
export declare function fetchPublishingHistory(
  siteId: string,
  options: Partial<FetchScheduledOptions>
): Observable<PagedArray<DashboardPublishingPackage>>;
export declare function fetchPublishingHistoryPackageItems(
  siteId: string,
  packageId: string
): Observable<SandboxItem[]>;
export interface ExpiredItem {
  itemName: string;
  itemPath: string;
  expireDateTime: string;
}
export declare function fetchExpired(siteId: string, options?: PaginationOptions): Observable<ExpiredItem[]>;
interface FetchExpiringOptions extends PaginationOptions {
  dateFrom: string;
  dateTo: string;
}
export declare function fetchExpiring(siteId: string, options: FetchExpiringOptions): Observable<ExpiredItem[]>;
export declare function fetchPublishingStats(siteId: string, days: number): Observable<PublishingStats>;
export {};
