import { APIResource } from "../../../core/resource.mjs";
import { APIPromise } from "../../../core/api-promise.mjs";
import { RequestOptions } from "../../../internal/request-options.mjs";
export declare class BaseSnapshots extends APIResource {
    static readonly _key: readonly ['intel', 'indicatorFeeds', 'snapshots'];
    /**
     * Revises the raw data entries in a custom threat indicator feed.
     *
     * Accepts both plain and gzipped STIX2/CRDF bodies. Gzip is detected by RFC 1952
     * magic bytes (`0x1f 0x8b`) and/or a `.gz` filename suffix (case-insensitive) —
     * either signal alone is sufficient to trigger the gzip path; if the body is not
     * valid gzip, the upload fails fast. Customers are encouraged to gzip larger
     * uploads — the api-gateway 500 MB body cap applies to the on-the-wire
     * (compressed) size, so gzip lets a single upload carry several GiB of
     * decompressed STIX.
     *
     * @example
     * ```ts
     * const snapshot =
     *   await client.intel.indicatorFeeds.snapshots.update(12, {
     *     account_id: '023e105f4ecef8ad9ca31a8372d0c353',
     *   });
     * ```
     */
    update(feedID: number, params: SnapshotUpdateParams, options?: RequestOptions): APIPromise<SnapshotUpdateResponse>;
}
export declare class Snapshots extends BaseSnapshots {
}
export interface SnapshotUpdateResponse {
    /**
     * Feed id
     */
    file_id?: number;
    /**
     * Name of the file unified in our system
     */
    filename?: string;
    /**
     * Account-relative polling path. Prepend `/accounts/{account_id}` using the same
     * account identifier and API host as the upload request. The path omits the
     * account segment because the service does not have your account identifier in
     * this context.
     */
    poll_url?: string;
    /**
     * Current status of the upload at the moment the request returned. This is NOT a
     * terminal state: the file is unified inline, but the durable loader has only
     * accepted it, so the upload is still `Unifying`. Poll `poll_url` until the status
     * reaches a terminal value (`Unified` or `Error`).
     */
    status?: string;
    /**
     * Identifier of the upload row, for polling this upload to a terminal state via
     * `poll_url`.
     */
    upload_id?: number;
}
export interface SnapshotUpdateParams {
    /**
     * Path param: Identifier
     */
    account_id: string;
    /**
     * Body param: The file to upload. Either a plain STIX2/CRDF body or a gzipped one
     * (recognised by `0x1f 0x8b` magic bytes or a `.gz` filename suffix).
     */
    source?: string;
    /**
     * Header param: Set to the literal value `1` to enqueue the upload and receive a
     * `202` response with a polling URL. Any other value uses the legacy synchronous
     * response.
     */
    'Cf-Async-Upload'?: '1';
}
export declare namespace Snapshots {
    export { type SnapshotUpdateResponse as SnapshotUpdateResponse, type SnapshotUpdateParams as SnapshotUpdateParams, };
}
//# sourceMappingURL=snapshots.d.mts.map