import * as z from 'zod'; import { type Description, type Key, type RawUserId, type Timestamp } from './satellite'; /** * @see TimestampMatcher */ export declare const TimestampMatcherSchema: z.ZodUnion, z.ZodObject<{ greater_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ less_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ between: z.ZodTuple<[z.ZodBigInt, z.ZodBigInt], null>; }, z.core.$strip>]>; /** * TimestampMatcher matches a timestamp field using a specific strategy. */ export type TimestampMatcher = { equal: Timestamp; } | { greater_than: Timestamp; } | { less_than: Timestamp; } | { between: [Timestamp, Timestamp]; }; /** * @see ListMatcher */ export declare const ListMatcherSchema: z.ZodObject<{ key: z.ZodOptional; description: z.ZodOptional; created_at: z.ZodOptional, z.ZodObject<{ greater_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ less_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ between: z.ZodTuple<[z.ZodBigInt, z.ZodBigInt], null>; }, z.core.$strip>]>>; updated_at: z.ZodOptional, z.ZodObject<{ greater_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ less_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ between: z.ZodTuple<[z.ZodBigInt, z.ZodBigInt], null>; }, z.core.$strip>]>>; }, z.core.$strict>; /** * Matcher used to filter list results. */ export interface ListMatcher { key?: Key; description?: Description; created_at?: TimestampMatcher; updated_at?: TimestampMatcher; } /** * @see ListPaginate */ export declare const ListPaginateSchema: z.ZodObject<{ start_after: z.ZodOptional; limit: z.ZodOptional; }, z.core.$strict>; /** * Optional pagination controls for listing. */ export interface ListPaginate { start_after?: Key; limit?: bigint; } /** * @see ListOrderField */ export declare const ListOrderFieldSchema: z.ZodEnum<{ created_at: "created_at"; updated_at: "updated_at"; keys: "keys"; }>; /** * Enum representing possible fields to order by. */ export type ListOrderField = 'keys' | 'updated_at' | 'created_at'; /** * @see ListOrder */ export declare const ListOrderSchema: z.ZodObject<{ desc: z.ZodBoolean; field: z.ZodEnum<{ created_at: "created_at"; updated_at: "updated_at"; keys: "keys"; }>; }, z.core.$strict>; /** * Ordering strategy for listing documents. */ export interface ListOrder { desc: boolean; field: ListOrderField; } /** * @see ListParams */ export declare const ListParamsSchema: z.ZodObject<{ matcher: z.ZodOptional; description: z.ZodOptional; created_at: z.ZodOptional, z.ZodObject<{ greater_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ less_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ between: z.ZodTuple<[z.ZodBigInt, z.ZodBigInt], null>; }, z.core.$strip>]>>; updated_at: z.ZodOptional, z.ZodObject<{ greater_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ less_than: z.ZodBigInt; }, z.core.$strip>, z.ZodObject<{ between: z.ZodTuple<[z.ZodBigInt, z.ZodBigInt], null>; }, z.core.$strip>]>>; }, z.core.$strict>>; paginate: z.ZodOptional; limit: z.ZodOptional; }, z.core.$strict>>; order: z.ZodOptional; }, z.core.$strict>>; owner: z.ZodOptional, Uint8Array>>; }, z.core.$strict>; /** * Full set of listing parameters. */ export interface ListParams { matcher?: ListMatcher; paginate?: ListPaginate; order?: ListOrder; owner?: RawUserId; } /** * Represents a list result. * * @template T - The type of the data returned per item. * @see JsListResults */ export declare const createListResultsSchema: (itemData: T) => z.ZodObject<{ items: z.ZodArray>; items_length: z.ZodBigInt; items_page: z.ZodOptional; matches_length: z.ZodBigInt; matches_pages: z.ZodOptional; }, z.core.$strict>; /** * List results, parameterized by type of returned item. */ export interface ListResults { items: [Key, T][]; items_length: bigint; items_page?: bigint; matches_length: bigint; matches_pages?: bigint; }