/// <reference types="node" />
/// <reference types="node" />
import type { ConstructorOf } from './resource.js';
import { Query, Resource, ResourceDriver } from './resource.js';
import { randomUUID } from 'crypto';
export declare class StoreDriver extends ResourceDriver {
    static fetch: typeof fetch;
    static uid: typeof randomUUID;
    readonly storeUrl: string;
    constructor(baseUrl?: string);
    create(resource: typeof Resource): Promise<void>;
    save<T extends Resource>(model: T): Promise<string>;
    remove<T extends Resource>(model: T): Promise<void>;
    find<T extends Resource>(model: T): Promise<T>;
    findAll<M extends Resource>(resource: ConstructorOf<M>, query: Query<M>): Promise<M[]>;
    private getUrl;
    private filter;
    private compare;
    private createModel;
}
