import * as API from "../../common/api"; import { CollectionDoc, Events, QueryParams, Resource, ResourceId, SingleDoc, State, Task, Time } from "../../common/structures"; import * as Containers from "../containers"; import * as Records from "./records"; export declare function document(): typeof CollectionRequest; export declare function document(id: ResourceId): SingleRequest; export interface Collection extends CollectionDoc { data: Zone[]; } export interface Single extends SingleDoc { data: Zone | null; includes?: { containers: { [key: string]: Containers.Container; }; }; } export interface Zone extends Resource { origin: string; records: Records.Record[]; state: State; events: Events & { last_verification: Time; verified: Time; }; } export declare type States = "pending" | "live" | "syncing" | "deleting" | "deleted"; export declare type SingleActions = "verify"; export interface NewParams { origin: string; } export interface UpdateParams { origin: string; } export declare class CollectionRequest { private static target; static get(query?: QueryParams): Promise>; static create(doc: NewParams, query?: QueryParams): Promise>; } export declare class SingleRequest { private id; private target; constructor(id: ResourceId); get(query?: QueryParams): Promise>; update(doc: UpdateParams, query?: QueryParams): Promise>; verify(): Promise>>; task(action: SingleActions, contents?: object, query?: QueryParams): Promise>>; delete(): Promise>>; records(): Records.CollectionRequest; records(id: ResourceId): Records.SingleRequest; }