import { PaginationConfig, PaginationController } from './types';
import * as i0 from "@angular/core";
/**
 * Servicio para crear controladores de paginacion reutilizables.
 *
 * @example
 * // En un componente
 * pagination = inject(PaginationService);
 *
 * usersController = this.pagination.createController<User>({
 *   strategy: 'offset',
 *   pageSize: 20,
 *   loadFn: (params) => this.userService.getUsers(params.page, params.pageSize)
 * });
 *
 * // En el template
 * @for (user of usersController.items(); track user.id) {
 *   <app-user-card [user]="user"></app-user-card>
 * }
 *
 * @if (usersController.hasMore()) {
 *   <ion-button (click)="usersController.loadNext()">Cargar mas</ion-button>
 * }
 */
export declare class PaginationService {
    /**
     * Crea un controlador de paginacion para una fuente de datos.
     *
     * @param config Configuracion del controlador
     * @returns Controlador de paginacion
     */
    createController<T>(config: PaginationConfig<T>): PaginationController<T>;
    /**
     * Crea un controlador simple para arrays estaticos con paginacion local.
     *
     * @param items Array completo de items
     * @param pageSize Tamano de pagina
     * @returns Controlador de paginacion
     */
    createLocalController<T>(items: T[], pageSize?: number): PaginationController<T>;
    static ɵfac: i0.ɵɵFactoryDeclaration<PaginationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PaginationService>;
}
