import type { Identifier } from "typeforge";
import type { SortOrder } from "../../../utils/utils.types";
/**
 * Lists entries in an ordered data store.
 * @endpoint GET /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries
 *
 * @param universeId The ID of the universe to get ordered data store entries from.
 * @param dataStoreId The ID (name) of the data store to get entries from.
 * @param scope The scope to get entries from.
 * @param sortOrder Whether to return the results from biggest to smallest (Desc) or smallest to biggest (Asc).
 * @param lessThanOrEq Filters the results to include those less than or equal to a specific number (can be used in tangent with `moreThabOrEq`).
 * @param moreThanOrEq Filters the results to include those more than or equal to a specific number (can be used in tangent with `lessThabOrEq`).
 * @param limit The number of results per request.
 * @param cursor The paging cursor for the previous or next page.
 *
 * @example
 * const { data:entries } = await OrderedDataStoresApi_V2.listOrderedDatastoreEntries({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", sortOrder: "Desc", lessThanOrEq: 80, moreThanOrEq: 70
   })
 * @exampleData [{"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":78,"id":"45348281"}]
 * @exampleRawBody {"orderedDataStoreEntries":[{"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":78,"id":"45348281"}]}
 */
export declare const listOrderedDatastoreEntries: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    sortOrder?: SortOrder | undefined;
    lessThanOrEq?: number | undefined;
    moreThanOrEq?: number | undefined;
    limit?: number | undefined;
    cursor?: string | undefined;
}) => Promise<{
    data: {
        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
        value: number;
        id: string;
    }[];
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            orderedDataStoreEntries: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
                value: number;
                id: string;
            }[];
            nextPageToken: string;
        };
    };
    cursors: {
        previous: import("../../apiGroup/apiGroup.types").Cursor;
        next: import("../../apiGroup/apiGroup.types").Cursor;
    };
    [Symbol.asyncIterator]: () => AsyncGenerator<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
            value: number;
            id: string;
        }[];
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                orderedDataStoreEntries: {
                    path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
                    value: number;
                    id: string;
                }[];
                nextPageToken: string;
            };
        };
        cursors: {
            previous: import("../../apiGroup/apiGroup.types").Cursor;
            next: import("../../apiGroup/apiGroup.types").Cursor;
        };
        [Symbol.asyncIterator]: null;
    } & {
        again: () => Promise<{
            data: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
                value: number;
                id: string;
            }[];
            response: {
                fullResponse: unknown;
                url: `https://${string}`;
                method: import("../../../utils/utils.types").RestMethod;
                success: boolean;
                statusCode: number;
                headers: Headers;
                body: {
                    orderedDataStoreEntries: {
                        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
                        value: number;
                        id: string;
                    }[];
                    nextPageToken: string;
                };
            };
        }>;
    }, any, unknown>;
} & {
    again: () => Promise<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
            value: number;
            id: string;
        }[];
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                orderedDataStoreEntries: {
                    path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${string}`;
                    value: number;
                    id: string;
                }[];
                nextPageToken: string;
            };
        };
    }>;
}>;
/**
 * Creates a new entry in an ordered data store.
 * @endpoint POST /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries
 *
 * @param universeId The ID of the universe to create the entry in.
 * @param dataStoreId The ID (name) of the data store to create the entry in.
 * @param scope The scope for the data store entry.
 * @param entryId the ID (name) for the entry.
 *
 * @example
 * const { data:entry } = await OrderedDataStoresApi_V2.createOrderedDataStoreEntry({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", entryId: "453482811", entryValue: 15
   })
 * @exampleData {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":15,"id":"45348281"}
 * @exampleRawBody {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":15,"id":"45348281"}
 */
export declare const createOrderedDataStoreEntry: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string, EntryId extends string, EntryValue extends number>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    entryId: EntryId;
    entryValue: EntryValue;
}) => Promise<{
    data: {
        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
        value: EntryValue;
        id: EntryId;
    };
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: EntryValue;
            id: EntryId;
        };
    };
} & {
    again: () => Promise<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: EntryValue;
            id: EntryId;
        };
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
                value: EntryValue;
                id: EntryId;
            };
        };
    }>;
}>;
/**
 * Gets an new entry in an ordered data store.
 * @endpoint GET /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries
 *
 * @param universeId The ID of the universe to get the entry from.
 * @param dataStoreId The ID (name) of the data store to get the entry from.
 * @param scope The scope of the data store entry.
 * @param entryId the ID (name) of the entry.
 *
 * @example
 * const { data:entry } = await OrderedDataStoresApi_V2.orderedDataStoreEntry({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", entryId: "45348281"
   })
 * @exampleData {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":78,"id":"45348281"}
 * @exampleRawBody {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":78,"id":"45348281"}
 */
export declare const orderedDataStoreEntry: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string, EntryId extends string>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    entryId: EntryId;
}) => Promise<{
    data: {
        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
        value: number;
        id: EntryId;
    };
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: number;
            id: EntryId;
        };
    };
} & {
    again: () => Promise<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: number;
            id: EntryId;
        };
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
                value: number;
                id: EntryId;
            };
        };
    }>;
}>;
/**
 * Deletes an entry from an ordered data store.
 * @endpoint DELETE /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries
 *
 * @param universeId The ID of the universe to delete the entry from.
 * @param dataStoreId The ID (name) of the data store to delete the entry from.
 * @param scope The scope of the data store entry to delete.
 * @param entryId the ID (name) of the entry to delete.
 *
 * @example
 * const { data:success } = await OrderedDataStoresApi_V2.deleteOrderedDataStoreEntry({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", entryId: "45348281"
   })
 * @exampleData true
 * @exampleRawBody {}
 */
export declare const deleteOrderedDataStoreEntry: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string, EntryId extends string>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    entryId: EntryId;
}) => Promise<{
    data: boolean;
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {};
    };
} & {
    again: () => Promise<{
        data: boolean;
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {};
        };
    }>;
}>;
/**
 * Updates an entry in an ordered data store.
 * @endpoint PATCH /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries/{entryId}
 *
 * @param universeId The ID of the universe to update the entry in.
 * @param dataStoreId The ID (name) of the data store to update the entry in.
 * @param scope The scope of the data store entry to update.
 * @param entryId the ID (name) of the entry to update.
 *
 * @example
 * const { data:entry } = await OrderedDataStoresApi_V2.updateOrderedDataStoreEntry({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", entryId: "45348281", newEntryValue: 45
   })
 * @exampleData {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":45,"id":"45348281"}
 * @exampleRawBody {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":45,"id":"45348281"}
 */
export declare const updateOrderedDataStoreEntry: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string, EntryId extends string, EntryValue extends number>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    entryId: EntryId;
    newEntryValue: EntryValue;
    allowIfMissing?: boolean | undefined;
}) => Promise<{
    data: {
        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
        value: EntryValue;
        id: EntryId;
    };
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: EntryValue;
            id: EntryId;
        };
    };
} & {
    again: () => Promise<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: EntryValue;
            id: EntryId;
        };
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
                value: EntryValue;
                id: EntryId;
            };
        };
    }>;
}>;
/**
 * Updates an entry in an ordered data store.
 * @endpoint PATCH /v2/universes/{universeId}/ordered-data-stores/{dataStoreId}/scopes/{scope}/entries/{entryId}:increment
 *
 * @param universeId The ID of the universe to update the entry in.
 * @param dataStoreId The ID (name) of the data store to update the entry in.
 * @param scope The scope of the data store entry to update.
 * @param entryId the ID (name) of the entry to update.
 *
 * @example
 * const { data:entry } = await OrderedDataStoresApi_V2.incrementOrderedDataStoreEntry({
     universeId: 5097539509, dataStoreId: "PointsStore", scope: "global", entryId: "45348281", incrementBy: 42
   })
 * @exampleData {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":42,"id":"45348281"}
 * @exampleRawBody {"path":"universes/5097539509/ordered-data-stores/PointsStore/scopes/global/entries/45348281","value":42,"id":"45348281"}
 */
export declare const incrementOrderedDataStoreEntry: <UniverseId extends Identifier, DataStoreId extends string, Scope extends string, EntryId extends string>(this: any, args: {
    universeId: UniverseId;
    dataStoreId: DataStoreId;
    scope: Scope;
    entryId: EntryId;
    incrementBy: number;
}) => Promise<{
    data: {
        path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
        value: number;
        id: EntryId;
    };
    response: {
        fullResponse: unknown;
        url: `https://${string}`;
        method: import("../../../utils/utils.types").RestMethod;
        success: boolean;
        statusCode: number;
        headers: Headers;
        body: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: number;
            id: EntryId;
        };
    };
} & {
    again: () => Promise<{
        data: {
            path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
            value: number;
            id: EntryId;
        };
        response: {
            fullResponse: unknown;
            url: `https://${string}`;
            method: import("../../../utils/utils.types").RestMethod;
            success: boolean;
            statusCode: number;
            headers: Headers;
            body: {
                path: `universes/${UniverseId}/ordered-data-stores/${DataStoreId}/scopes/${Scope}/entries/${EntryId}`;
                value: number;
                id: EntryId;
            };
        };
    }>;
}>;
