import type { PaginationStrategy } from '../types.js';
import { Action, type ActionSchema } from './Action.js';
/**
 * Enables retrieving a collection of resources.
 * Endpoint: GET /[entity-collection-name]
 */
export interface ListActionSchema extends ActionSchema {
    kind: 'list';
    /**
     * The pagination strategy used for this action.
     * This defines how the results are paginated when retrieving a collection of resources.
     * It can be either 'cursor' or 'offset'.
     */
    pagination: PaginationStrategy;
    /**
     * Fields from the entity that can be used for filtering.
     * Must be marked as "indexable" in the Data Model.
     */
    filterableFields: string[];
    /**
     * Fields from the entity that can be used for sorting.
     */
    sortableFields: string[];
}
/**
 * Enables retrieving a collection of resources.
 * Endpoint: GET /[entity-collection-name]
 */
export declare class ListAction extends Action implements ListActionSchema {
    accessor kind: 'list';
    accessor pagination: PaginationStrategy;
    accessor filterableFields: string[];
    accessor sortableFields: string[];
    constructor(state?: Partial<ListActionSchema>);
    toJSON(): ListActionSchema;
    static isListAction(action: Action): action is ListAction;
    static isListActionSchema(schema: ActionSchema): schema is ListActionSchema;
}
//# sourceMappingURL=ListAction.d.ts.map