type ResourceOrResourceId = {
    id: string;
} | string;
export type QueryResource = {
    load: (resourceId: string) => void;
    generateLink: (resourceOrResourceId: ResourceOrResourceId) => string;
    copyLinkToClipboard: (resourceOrResourceId: ResourceOrResourceId) => void;
    syncWithRoute: () => void;
};
type QueryResourceConfig<T extends {
    id: string;
}> = {
    endpoint: string;
    params?: Record<string, any>;
    query: string;
    callback?: (resource: T) => void;
};
export declare function useQueryResource<T extends {
    id: string;
}>(cfg: QueryResourceConfig<T>): QueryResource;
export {};
