import { HalResource } from '../hal/models/HalResource';
import { ContentItem } from './ContentItem';
import { Hub } from './Hub';
import { SnapshotCreator } from './SnapshotCreator';
import { SnapshotType } from './SnapshotType';
/**
 * Class representing the [Snapshot](https://amplience.com/docs/api/dynamic-content/management/#tag/Snapshots) resource.
 * A Snapshot is an immutable representation of a content item with all of its descendants (including their versions) at a given point in time.
 */
export declare class Snapshot extends HalResource {
    /**
     * Unique id generated on creation
     */
    id?: string;
    /**
     * Textual comment description of the Snapshot
     */
    comment?: string;
    /**
     * Id of the user responsible for originally creating the Snapshot
     */
    createdBy?: string;
    /**
     * Timestamp representing when the Snapshot was originally created in ISO 8601 format
     */
    createdDate?: string;
    /**
     * Resource type the snapshot was created from
     */
    createdFrom?: SnapshotCreator;
    /**
     * Snapshot type
     */
    type?: SnapshotType;
    /**
     * Resources and actions related to a Snapshot
     */
    readonly related: {
        /**
         * Retrieves the Hub this snapshot is stored in
         */
        hub: () => Promise<Hub>;
        /**
         * Retrieves the specific version of a content item referenced by the Snapshot
         * @param id Content item id
         */
        snapshotContentItem: (id: string) => Promise<ContentItem>;
    };
}
