type Token = {
    value: string;
    depth: number;
    isGlob: boolean;
    backslashes?: boolean;
    isBrace?: boolean;
    isBracket?: boolean;
    isExtglob?: boolean;
    isGlobstar?: boolean;
    negated?: boolean;
    isPrefix?: boolean;
};
type State = {
    prefix: string;
    input: string;
    start: number;
    base: string;
    glob: string;
    isBrace: boolean;
    isBracket: boolean;
    isGlob: boolean;
    isExtglob: boolean;
    isGlobstar: boolean;
    negated: boolean;
    negatedExtglob: boolean;
    maxDepth?: number;
    tokens?: Token[];
    slashes?: number[];
    parts?: string[];
};
/**
 * Quickly scans a glob pattern and returns an object with a handful of
 * useful properties, like `isGlob`, `path` (the leading non-glob, if it exists),
 * `glob` (the actual pattern), `negated` (true if the path starts with `!` but not
 * with `!(`) and `negatedExtglob` (true if the path starts with `!(`).
 *
 * ```js
 * import rematch from '@chance/rematch';
 * console.log(rematch.scan('foo/bar/*.js'));
 * { isGlob: true, input: 'foo/bar/*.js', base: 'foo/bar', glob: '*.js' }
 * ```
 * @param {String} `str`
 * @param {Object} `options`
 * @return {Object} Returns an object with tokens and regex source string.
 * @api public
 */
declare const scan: (input: any, options: any) => State;
export default scan;
