import { ReactNode } from 'react';
import { Static, TArray, TObject } from '@sinclair/typebox';
import { DatasourceRefSettings } from '@upstart.gg/sdk/shared/bricks/props/datasource';
type DatasourceSchema = TObject | TArray<TObject>;
export declare function DatasourceProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
/**
 * Uses a datasource declared in a brick manifest
 */
export declare function useDatasource<S extends DatasourceSchema | null = null, D extends DatasourceRefSettings = DatasourceRefSettings>(dsRef: D | undefined, schema: S): {
    datasourceId: string | null;
    data: S extends DatasourceSchema ? Static<S> : Record<string, unknown>[];
    isSample: boolean;
};
export {};
