import type { AnyAtom, AtomValue, SetAtomValue } from '../utils/types.js';
type Predicate> = ((value: AtomValue) => value is S) | ((value: AtomValue) => unknown);
type FilteredValue> = P extends ((value: AtomValue) => value is infer S extends AtomValue) ? S : AtomValue;
type ResultAtom> = SetAtomValue>;
export default function filter, P extends Predicate>(atom: A, predicate: P): ResultAtom;
export {};