import { FilamentBuffer } from '../native/FilamentBuffer';
type Require = number;
export type BufferSource = Require | {
    /**
     * A web URL (http:// or https://), local file (file://) or asset path of the bundled asset.
     */
    uri: string;
};
export interface BufferProps {
    /**
     * If you are passing in a `.glb` model or similar from your app's bundle using `require(..)`, make sure to add `glb` as an asset extension to `metro.config.js`!
     * If you are passing in a `{ url: ... }`, make sure the URL points directly to a `.glb` model. This can either be a web URL (`http://..`/`https://..`), a local file (`file://..`), or an native asset path (`path/to/asset.glb`)
     */
    source: BufferSource;
    /**
     * @default true
     */
    releaseOnUnmount?: boolean;
}
/**
 * Asynchronously load an asset from the given web URL, local file path, or resource ID.
 */
export declare function useBuffer({ source: source, releaseOnUnmount }: BufferProps): FilamentBuffer | undefined;
export {};
//# sourceMappingURL=useBuffer.d.ts.map