import { StorageAccessLevel } from '@aws-amplify/core';
export interface StorageOptions {
    /** @deprecated This may be removed in the next major version. */
    accessLevel?: StorageAccessLevel;
}
export type StorageListAllOptions = StorageOptions & {
    listAll: true;
};
export type StorageListPaginateOptions = StorageOptions & {
    listAll?: false;
    pageSize?: number;
    nextToken?: string;
};
export type StorageRemoveOptions = StorageOptions;
export type StorageSubpathStrategy = {
    /**
     * Default behavior. Includes all subpaths for a given page in the result.
     */
    strategy: 'include';
} | {
    /**
     * When passed, the output of the list API will provide a list of `excludedSubpaths`
     * that are delimited by the `/` (by default) character.
     *
     *
     * @example
     * ```ts
     *	const { excludedSubpaths } = await list({
     *		path: 'photos/',
     *		options: {
     *			subpathStrategy: {
     *				strategy: 'exclude',
     *			}
     *		}
     *	});
     *
     *	console.log(excludedSubpaths);
     *
     * ```
     */
    strategy: 'exclude';
    /**
     * Deliminate with with a custom delimiter character.
     *
     * @example
     * ```ts
     *	const { excludedSubpaths } = await list({
     *		path: 'photos/',
     *		options: {
     *			subpathStrategy: {
     *				strategy: 'exclude',
     *				delimiter: '-'
     *			}
     *		}
     *	});
     *
     *	console.log(excludedSubpaths);
     *
     * ```
     */
    delimiter?: string;
};
